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 に答える