安卓:isDirectory()函数总是返回false

3
isDirectory() 函数返回 false,即使 ArrayList 包含路径。
ArrayList 中的项具有指向内部存储和 SD 卡的路径。是否有人能提供任何解决方案?
以下是代码 -
public class FileBrowser extends ListActivity {
ArrayList<String> listItems;
String ROOT_PATH1 = "/storage/emulated/0";
String ROOT_PATH2 = "/storage/sdcard1";
String parent="";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_file_browser);
    setRoot();
}

private void setRoot() {
    listItems = new ArrayList<String>();

    listItems.add("<-BACK");
    listItems.add(ROOT_PATH1);
    listItems.add(ROOT_PATH2);
    ArrayAdapter<String> fileList = new ArrayAdapter<String>(this,R.layout.file_list_row, listItems);
    setListAdapter(fileList);
}

//on clicking any item in the dialog
@Override
protected void onListItemClick(ListView l, View v, int position, long id){

     int selectedRow = (int)id;
     int y=0;

     if(selectedRow == 0){
          setRoot();
     }else
     {
          File file = new File(listItems.get(selectedRow));
          if(file.isDirectory()){
              getFiles(file.listFiles());
              //opening  pdf files
          }else{
             //neither pdf file nor directory
          }

     }
}

1
你是否列出了错误的目录?尝试输出“文件”并将其与我们的文件系统进行比较,看它是否真的存在。 - Mariano
也许你的SD卡挂载有误。尝试使用Files.exists()。 - Mariano
是的,我检查了file变量的值。进入该变量的值是正确的。 - TeeKay
然后只需编写一个小程序,其中包含System.out.println(new File("/storage/emulated/0").isDirectory()); - wero
但是我使用 Toast 检查了文件的值。Toast.makeText(getApplicationContext(), file.toString(), Toast.LENGTH_SHORT); 值是正确的。我需要知道是否有其他方法来检查文件或目录。 - TeeKay
显示剩余5条评论
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接