【问题标题】:android : isDirectory() function always returns falseandroid : isDirectory() 函数总是返回 false
【发布时间】:2016-01-20 16:28:24
【问题描述】:

即使 Arraylist 包含路径,isDirectory() 函数也会返回 false。

Arraylist 的 Item 具有内部存储和 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
          }

     }
}

【问题讨论】:

  • 您是否列出了错误的目录?尝试输出“文件”并与我们的fs比较它是否真的存在。
  • 是的,确实如此。几天前这段代码运行良好。
  • 可能是您的 SD 卡安装错误。尝试 Files.exists() 以及
  • 内部存储也存在问题。
  • 是的,我调试了代码。

标签: java android directory android-arrayadapter listactivity


【解决方案1】:

您使用的是哪个版本的 Android?据我所知,KitKat 中有一些与 SD 卡访问相关的限制。也许这至少会有所帮助:

http://www.instructables.com/id/How-to-bypass-Android-44-KitKat-external-SD-write-/

棒棒糖中的限制又消失了

【讨论】:

    猜你喜欢
    • 2017-01-28
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多