3

私は getFileStreamPath の狂気を理解するのに数時間かかりました。path = "shop/crates/fruits" が存在するかどうかをテストする方法を誰か説明してもらえますか? テストを簡素化するために、パスをセグメントに分割しました。私はそれを持っていると思いました。しかし、ショップが存在するのに箱がない場合、テストは中断します..変です! またはそれは?

public static Boolean pathExists(String path, Context ctx)
{
    Boolean result = false;
    String[] pathSegments = path.split("/");
    String pathStr = "";
    for(int i = 0;i<pathSegments.length;i++ )
    {
        pathStr += pathSegments[i];
        if(!ctx.getFileStreamPath(pathStr).exists())
        {
            result = false;
            break;
        }
        pathStr += "/";
        result = true;
    }
    return result;
}
4

2 に答える 2

2

ええ、くだらないAndroid APIです。秘密のソースは、context.getFilesDir() を使用することです。それはあなたのファイルです:

File file = new File(context.getFilesDir() + File.separator + path);

その後、ファイルは正常に動作します。

于 2013-09-17T12:46:32.193 に答える
0

まず、 は、getFileStreamPathopenFileOutput(String, int) で作成されたファイルが保存されているファイル システムの絶対パスを返します。

内部または外部ストレージのパスをテストしようとしていますか? 外部ストレージを使用する場合はgetExternalFilesDir(). のような内部パッケージ埋め込みリソースを使用する場合はres/raw、別の話です。

Android res フォルダーに入れた生のリソースにアクセスするにはどうすればよいですか?

しかし、私はそれがあなたがそれを得ると推測している方法でうまくいくとは思わない.

このhttp://developer.android.com/guide/topics/data/data-storage.html を注意深くお読みください。

Using the Internal Storageそこの章を読んでください。

以下も参照してください。

Android 内部ストレージにファイルを作成するには?

内部プライベート ストレージへのファイルの読み取り/書き込み

http://www.vogella.de/articles/AndroidFileSystem/article.html

于 2012-02-14T00:53:35.107 に答える