File 使用

在使用File文件类进行文件读写是,需要添加文件读写权限:
<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
在使用Environment.getExternalStorageDirectory方法时,一般情况下获取的目录为: /storage/emulated/0

File.Separator 的字符串为:/
File.pathSeparator 的字符串为: :

遍历某个文件夹下的所有文件:
getAllFiles(Environment.getExternalStorageDirectory().getAbsolutePath().toString() + File.separator + "Pictures");
在使用Environment.getExternalStorageDirectory获取文件路径时,需要手动使用toString方法,以免在后面执行listFiles()返回null。
在D260机器上进行测试,在Pictures目录下存放文件的情况下,使用Environment.getExternalStorageDirectory直接作为参数传入时,listFile()方法返回null,使用Environment.getExternalStorageDirectory().toString()作为参数传入时,listFile()可以正常执行,不会返回null。
private void getAllFiles(String filePath){
    File file = new File(filePath);
file.setReadable(true);
if (file.isDirectory()){
File[] files = file.listFiles();
Log.i("FilePath","files == null"+(files == null));
if (files != null){
for (int i = 0; i< files.length; i++){
getAllFiles(files[i].getAbsolutePath());
}
}
}else{
if (file.getName().endsWith(".jpg")){
Log.i("FilePath","fileName = "+file.getName());
}
}
}
使用文件类创建目录、文件并向文件写入数据
在使用File创建文件时,如果文件所在的路径不存在,则无法成功创建文件(也不会报错,异常被catch掉了),
使用File.mkdir()只能创建一级目录,使用File.mkdirs()可以创建多级目录。在创建文件需要保证路径是有效并存在的。
下面两种创建目录的结果相同。
1:
String path1 = Environment.getExternalStorageDirectory().getAbsolutePath().toString()+File.separator+"Exposure";
String path2 = Environment.getExternalStorageDirectory().getAbsolutePath().toString()+File.separator+"Exposure"+File.separator+"setting";
File filePath1 = new File(path1);
filePath1.mkdir();
File filePath2 = new File(path2);
filePath2.mkdir();
File file = new File(path2,"setting.txt");

2:
 
   
String path2 = Environment.getExternalStorageDirectory().getAbsolutePath().toString()+File.separator+"Exposure"+File.separator+"setting";
File filePath2 = new File(path2);
filePath2.mkdirs();
File file = new File(path2,"setting.txt");
只有想创建路径才能创建文件。



你可能感兴趣的:(File 使用)