ここに私が実行しているコードがあります:
File root = android.os.Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File dir = new File(root.getAbsolutePath());
dir.mkdirs();
File file = new File(dir, "myData.txt");
try {
FileOutputStream f = new FileOutputStream(file);
PrintWriter pw = new PrintWriter(f);
pw.println("Hi , How are you");
pw.println("Hello");
pw.flush();
pw.close();
f.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
android.util.Log
.i("tag",
"******* File not found. Did you add a WRITE_EXTERNAL_STORAGE permission to the manifest?");
} catch (IOException e) {
e.printStackTrace();
}
コードは問題なく実行され、これらのテストを実行すると、ファイル システムにファイルが存在することがすべて示されます。
File testFile = new File(dir, "myData.txt");
Boolean exists = testFile.exists();//true
Boolean hidden = testFile.isHidden();//false
String[] files = dir.list();//list contains the file
しかし、ファイル エクスプローラー、ルート ブラウザー、またはターミナル エミュレーターでファイルが表示されません。そして、 によって照会されたファイルのリストは、 のdir.list()
ルート ブラウザに表示されるものとは異なります/mnt/sdcard/Downloads
。myData.txt
ターミナルエミュレーターでファイルを検索しようとしましたfind / -name *myData*
が、結果はありませんでした。
ルート化された s4 でコードを実行しています。AndroidManifest には WRITE_EXTERNAL_STORAGE 権限が含まれています。
これはなぜですか?また、ファイルを作成した後にユーザーに表示させるにはどうすればよいですか?