zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    MYSQL 日志参数与性能的关系
    mybatis 中 foreach collection的三种用法
    SqlServer查找引用存储过程的地方_字段在哪些表中
    ubuntu中sudo不用输入密码配置
    matlab练习程序(罗德里格斯变换)
    matlab练习程序(多边形扩展算法)
    matlab练习程序(生成gif图片)
    python3 mac环境 生成pdf
    requests 爬取 台州市 履行中状态的合同附件
    个人支付方案(免签约)-支付宝当面付
  • 原文地址:https://www.cnblogs.com/fengju/p/6336116.html
Copyright © 2011-2022 走看看