1

我在 SD 卡中有一个 XML 文件。我想搜索整个 sd 卡并找到该文件。之后我必须解析该文件。

我做了一个类似的事情。但无法获取文件..

static final String PATH = Environment.getExternalStorageDirectory()
        .getPath() + "/download/";
static final String FILE_NAME = "aura_key.xml";

static File isKeyExist() {
     File file = new File(PATH+FILE_NAME);

     if(file.exists())
     {
         return file;
     }else

    return file;

}

提前致谢。

4

2 回答 2

2

如果要在整个外部存储中搜索,则需要查看所有目录和子目录等...

这是一个示例解决方案,只需使用您的文件名调用第一个方法(包括您的情况下的文件扩展名:

searchForFileInExternalStorage("aura_key.xml");

以下是方法:

public File searchForFileInExternalStorage(String filename) {
    File storage = Environment.getExternalStorageDirectory();

    return searchForFileInFolder(filename, storage);
}

public File searchForFileInFolder(String filename, File folder) {
    File[] children = folder.listFiles();
    File result;

    for (File child : children) {
        if (child.isDirectory()) {
            result = searchForFileInFolder(filename, child);
            if (result != null) {
                return result;
            }
        } else {
            // replace equals by equalsIgnoreCase if you want to ignore the
            // case of the file name
            if (child.getName().equals(filename)) {
                return child;
            }
        }
    }

    return null;
}
于 2013-01-16T09:52:09.020 回答
1
public static boolean checkdirAvail(String yourpath) {
    boolean ret = true;

    File file = new File(Environment.getExternalStorageDirectory(), path);
    if (!file.exists()) {
        if (!file.mkdirs()) {
            Log.e("TravellerLog :: ", "Problem creating Image folder");
            ret = false;
        }
    }
    return ret;
}
于 2013-01-16T09:54:42.890 回答