0

私はこれを書いています..

String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {

        file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), myFileName);

        if(file.exists()) {
            createDelete.setText("Delete file");
            Toast.makeText(SaveToFile.this, myFileName+" auto-created",Toast.LENGTH_LONG).show();
        }
        else if(!file.exists()) 
            Toast.makeText(SaveToFile.this, myFileName+" auto-creation failed",Toast.LENGTH_LONG).show();
    }

実行すると、失敗したトーストが作成されます。ディレクトリにファイルが見つかりません(エミュレータでも電話でもありません)。

マニフェストに追加された権限、バージョンは 8 です。エミュレーターには 512 MB の外部メモリがあります。

4

3 に答える 3

0

これを試して..

if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
    //handle case of no SDCARD present
} else {
    File file = new File(Environment.getExternalStorageDirectory()
         +File.separator
         +"myDirectory" //folder name
         +File.separator
         +"myFile.example"); //file name
    file.mkdirs();
}

そしてあなたのマニフェストで..

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
于 2013-09-02T11:33:58.270 に答える
0

ファイルを作成する場合は、mkdir を呼び出す必要があります

File file = new File(Environment..getExternalStorageDirectory(), myFileName);
// To create the file
file.mkdir();

mkdir はブール値なので、これを行うこともできます

if (file.mkdir()) {
    Toast.makeText(SaveToFile.this, myFileName+" auto-created",Toast.LENGTH_LONG).show();
} else {
    Toast.makeText(SaveToFile.this, myFileName+" auto-creation failed",Toast.LENGTH_LONG).show();
}

いくつかのサブディレクトリがある場合は、mkdirs()を使用すると、不足しているサブディレクトリが作成されます

http://developer.android.com/reference/java/io/File.html#mkdir%28%29

于 2013-09-02T11:35:24.783 に答える