如何从android mobile sd卡中搜索xml文件

时间:2013-01-16 06:54:58

标签: android file xml-parsing sd-card

我在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;

}

提前致谢。

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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;
}