1

これはクラックするのは簡単かもしれませんが、なぜこのコードが私の 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();
    }    

マニフェストに正しい権限があり、外部ストレージが書き込み可能かどうかを確認するチェックを挿入しますが、それが問題だとは思いません...

4

1 に答える 1

0

これを試して

try {
   File root = Environment.getExternalStorageDirectory();
   File myFile = new File(root +"/textfile.txt");
   myFile.createNewFile();

   FileOutputStream fOut = new FileOutputStream(myFile);
   OutputStreamWriter myOutWriter = 
         new OutputStreamWriter(fOut);
   myOutWriter.append("String entered in file");

   myOutWriter.close();
   fOut.close();
} catch (Exception e) {
   Toast.makeText(getBaseContext(), e.getMessage(),Toast.LENGTH_SHORT).show();

}
于 2012-11-02T15:56:03.667 に答える