1

私の英語で申し訳ありませんが、私の意見では最高なので、このファイルに書きたいと思います。今私の問題: 内部ストレージにフォルダーを作成して、2 つのアプリケーションと共有したいと考えています。私のアプリでは、サーバーから Apk をダウンロードして実行しました。外部ストレージを使用する前は、すべてが機能していました。ここで、外部ストレージを持っていないユーザーのために内部ストレージを使用したいと考えています。

私はこれを使用します:

String folderPath = getFilesDir() + "Dir"

しかし、APK を実行しようとしても機能せず、携帯電話でこのフォルダーが見つかりません。

ありがとうございました..

4

4 に答える 4

4

この投稿から:

正しい方法:

  1. 目的のディレクトリのファイルを作成します (例: File path=new
  2. File(getFilesDir(),"myfolder");)
  3. その File で mkdirs() を呼び出して、ディレクトリが存在しない場合は作成します
  4. 出力ファイル用のファイルを作成します (例: File mypath=new File(path,"myfile.txt");)
  5. 標準の Java I/O を使用してそのファイルに書き込みます (たとえば、new BufferedWriter(new FileWriter(mypath)) を使用)。

楽しみ。

また、私が使用する公開ファイルを作成するには:

    /**
 * Context.MODE_PRIVATE will create the file (or replace a file of the same name) and make it private to your application.
 * Other modes available are: MODE_APPEND, MODE_WORLD_READABLE, and MODE_WORLD_WRITEABLE.
 */

public static void createInternalFile(Context theContext, String theFileName, byte[] theData, int theMode)
{
    FileOutputStream fos = null;

    try {
        fos = theContext.openFileOutput(theFileName, theMode);
        fos.write(theData);
        fos.close();
    } catch (FileNotFoundException e) {
        Log.e(TAG, "[createInternalFile]" + e.getMessage());
    } catch (IOException e) {
        Log.e(TAG, "[createInternalFile]" + e.getMessage());
    }
}

theMode を MODE_WORLD_WRITEABLE または MODE_WORLD_READABLE に設定するだけです (これらは API レベル 17 から廃止されることに注意してください)。

使用することもできますtheContext.getDir();が、ドキュメントの内容に注意してください:

アプリケーションが独自のカスタム データ ファイルを配置できる新しいディレクトリを取得し、必要に応じて作成します。返された File オブジェクトを使用して、このディレクトリ内のファイルを作成およびアクセスできます。File オブジェクトを介して作成されたファイルは、独自のアプリケーションからのみアクセスできることに注意してください。個々のファイルではなく、ディレクトリ全体のモードのみを設定できます。

幸運をお祈りしています。

于 2013-06-24T16:18:13.177 に答える