2016-03-30 18 views
0

なぜlistFiles()メソッドがnullを返すのだろうと思いますか?私はこの文字列をファイルパスに使用しています:/ storage/UsbDriveA。なぜlistFiles()メソッドがnullを返すのですか?

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を返している。ここで

は、私が現在使用しているコードのですか?

+0

'ファイルパス:/ storage/UsbDriveAにこの文字列を使用しています。おそらくそのパスは存在しません。 –

+0

USBドライブを差し込んだときにそれが存在していることを確認しました。 – user268397

答えて

3

まず、デバイスまたはエミュレータにこのようなパスがない可能性があります。デバイスはほとんどありません。

第2に、removable storageのように見えるため、Android 4.4以降のデバイスでファイルシステムにアクセスすることはできません。

+0

私は、私がテストしている私の電話にそのパスがあることを確認するために二重にチェックされています。 – user268397

関連する問題