Android挂载以点号(.)开头的文件夹或是文件

使用情境:

如果我说我想要在电脑上能够访问手机SD卡上的某一个目录abc,你们是不是就是去新建一个类似"/mnt/sdcard/abc/"这样目录的文件夹?事实确实如此。不过,如果我们再加一条需求可能情况就不一样了。我想在我们的PC机上可以访问,但手机的设备管理器中是不能够去访问这个目录的,这又该怎么做了呢?

解决方案:

对于上述的问题,我们可以采用在需要创建的目录前面添加一个"."号。如上就可以写成"/mnt/sdcard/.abc/"。这样创建出来的目录在我们的手机上是访问不到的(前提是这部手机没有Root,就算Root了,也没有安装类似Root Explorer这样的软件)。但如果仅仅是这样,我们的PC机也同样访问不到。想要访问此目录,还需对其进行一层的包装。包装的方法如下:

我们可以使用这样的一个类进行包装:

public class SingleMediaScanner implements MediaScannerConnectionClient {

	private MediaScannerConnection mMs;
	private File mFile;

	public SingleMediaScanner(Context context, File f) {
		mFile = f;
		mMs = new MediaScannerConnection(context, this);
		mMs.connect();
	}

	@Override
	public void onMediaScannerConnected() {
		mMs.scanFile(mFile.getAbsolutePath(), null);
	}

	@Override
	public void onScanCompleted(String path, Uri uri) {
		mMs.disconnect();
	}
}

上面只是介绍了MediaScannerConnectionClient的一种使用方法,在后期的博客中会对此类做一个详细的介绍和说明。

使用示范:

public class MainActivity extends Activity {

    private static final String PATH = "/mnt/sdcard/.testDir/";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (!ZFFileSystem.isDirExisted(PATH)) {
            ZFFileSystem.createDir(PATH);
        }

        ZFFileSystem.writeData2SD(PATH + "a.txt", "abcdef".getBytes());
        SingleMediaScanner scanner = new SingleMediaScanner(MainActivity.this, new File(PATH + "a.txt"));
    }
}

注意事项:

1. 当前手机与PC的连接方式为MTP连接方式。目前本人亲测的,像魅族、小米这两款手机在连接电脑的时候就会有MTP连接方式的提示。不过也有一些手机或平板是没有的,这时就要在设置—>存储—>点击右上角按钮后选择MTP连接。

源代码下载:

http://download.csdn.net/detail/u013761665/8417407

时间: 2024-10-05 02:08:44

Android挂载以点号(.)开头的文件夹或是文件的相关文章

【Android】14.3 浏览手机中的所有文件夹和文件

分类:C#.Android.VS2015: 创建日期:2016-02-27 一.简介 前面我们了解了内部存储.外部存储的含义,用一句话说,内部存储实际上是保存在"data"文件夹下,外部存储(SD卡)实际是保存在"sdcard"或者"storage"文件夹下. 这个例子演示如何将这些内部存储和外部存储的文件夹及其子文件架下的文件全部显示出来,类似于树形结构一层一层地向下看(例子没有实现返回上层的功能,或者说,仅仅实现了Android自带的文件浏览

android创建文件夹和文件和安装其他apk

一.android下创建文件夹 File sd=Environment.getExternalStorageDirectory(); String path=sd.getPath()+"/notes"; File file=new File(path); if(!file.exists()) file.mkdir(); 二.android下创建文件 HttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet= new

Android 删除SD卡文件和文件及创建文件夹和文件

package com.jiub.client.mobile.addphoto; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.graphics.Bitmap; import android.os.Environment; import android.util.Log; p

android开发步步为营之54:读取assets,raw文件夹下文件

一.读取assets文件下文件products.json public String readAssetFile(Context c, String file) { Elapsed profiler = new Elapsed(); BufferedReader bufReader = null; try { InputStreamReader inputReader = new InputStreamReader(c.getResources().getAssets().open(file))

apache FtpClient上传下载删除文件夹及文件

/* * 文件名:FtpUtil.java * 描述:FTP操作 * 修改时间2014-08-10 */ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; import jav

FTP上传指定文件夹及其文件到服务器

1.在服务器端的IIS上建立一个FTP站点 注意事项:路径关联到你要存放(上传内容)的文件夹名称: 指定这个FTP站点的ip地址和端口号 2.本地准备代码 -------------------------------2.1上传类--------------------------------------------------------- public class Up    {        /// <summary>        ///   上传文件菜单        /// <

FileSizeUtil【获取文件夹或文件的大小】

版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 获取文件夹或者文件的大小,可以指定单位,也可以自动计算合适的单位值. 效果图 代码分析 常用的方法: getFolderOrFileSize(String filePath,int sizeType)[获取指定文件或指定文件夹的的指定单位的大小] getAutoFolderOrFileSize(String filePath)[自动计算指定文件或指定文件夹的大小] 使用步骤 一.项目组织结构图 注意事项: 1.导入类文件后需要chang

文件夹和文件对比工具

1.Beyond compare 适用系统:Win8.1/Win8/Win7/Vista/Win2003/WinXP 链接:http://baoku.360.cn/soft/show/appid/102794 优点:继承了原 2.0 的文本比较的强大功能(支持标注行号以任意颜色标注差异同步差异)更加强化了在文件夹对比时的多文件操作.不再以原来的多窗口方式.而是采用了流行的标签卡方式.另多个文件的比较得心应手!此外 3.0 还将增加以往只使用插件才能实现的功能: 强大的 hex 比较-快速的装载并

TortoiseSVN文件夹及文件状态图标不显示解决方法

win8 64位系统,原本svn是好用的,安装了klive金山快盘后,svn图标都不显示了.最后通过修改注册表解决: win+R调出运行框,输入regedit,打开注册表编辑器. 将SVN的状态图标排序进行修改,由于快盘用.开头占掉了系统默认状态图标数.因此把每个svn图标前,都加上点.排序就靠前了. 修改后重启系统,图标就全部恢复了. TortoiseSVN文件夹及文件状态图标不显示解决方法