为什么listFiles()方法返回null?

时间:2016-03-30 15:51:34

标签: android android-layout

我想知道为什么listFiles()方法返回null?我使用此字符串作为文件路径:/ storage / UsbDriveA。

以下是我目前正在使用的代码:

List<String> filesInFlashDrive = addListOfFiles("/storage/UsbDriveA/");

public ArrayList<String> addListOfFiles(String directoryPath) {
    File f = new File(directoryPath);
    f.mkdirs();
    Log.i("FileBrowserActivity", "File Value:" + f);
    Log.i("FileBrowserActivity", "List of files:"+f.listFiles());
    File[] file = f.listFiles();
    /*File[] file = f.listFiles(new FileFilter() {
        @Override
        public boolean accept(File pathname) {
            return pathname.toString().endsWith(".pdf") ? true : false;
        }
    });*/
    ArrayList<String> arrayFiles = new ArrayList<String>();
    if (file.length == 0)
        return null;
    else {
        for (int i=0; i<file.length; i++)
            arrayFiles.add(file[i].getName());
    }

    return arrayFiles;
}

为什么listFiles()方法返回null?

1 个答案:

答案 0 :(得分:3)

首先,您的设备或模拟器可能没有这样的路径。设备很少。

其次,因为它似乎是removable storage,所以在Android 4.4及其设备上没有任意文件系统访问它。