これはクラックするのは簡単かもしれませんが、なぜこのコードが私の Android 外部ファイル システムに新しいファイルを作成しないのか、私にはわかりません。ディレクトリは正しく作成されていますが、ファイルは作成されていません。代わりに java.io.FileNotFoundException: /mnt/sdcard/Mydir/MyFile が発生します。
//Generate a unique filename using date and time
String fileName = "myFile_"+formatter_file_name.format(today)+".txt";
//Get path to root
String root = Environment.getExternalStorageDirectory().toString();
//Create(if not exists) directory in root in which to store the reports
File myDir = new File(root + "/myDir");
myDir.mkdirs();
//Create report file object
File file = new File (myDir, fileName);
//If file already exists delete id(this should not be able to happen)
if (file.exists()) file.delete();
try {
FileOutputStream fout = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fout);
// Write the string to the file
osw.write("TEST STRING");
//Ensure that everything has been written to the file and close
osw.flush();
osw.close();
} catch (Exception e) {
e.printStackTrace();
}
マニフェストに正しい権限があり、外部ストレージが書き込み可能かどうかを確認するチェックを挿入しますが、それが問題だとは思いません...