ASUS Transformerで次のコードを実行すると、 'testdata.txt'が 'sd card'ディレクトリの最上位に作成されます。ASUS Transformerで保存した場合、Windowsエクスプローラでファイルが表示されないSDカード
private void testWriteFile() throws IOException
{
File sdCard = Environment.getExternalStorageDirectory();
File file = new File(sdCard, "testfile.txt");
FileOutputStream myOutput = new FileOutputStream(file);
byte buffer[] = {'0','1','2','3','4','5','6','7','8','9'};
myOutput.write(buffer,0,buffer.length);
myOutput.flush();
myOutput.close();
}
ファイルマネージャーアプリケーションを使用して、ASUS Transformerでファイルを表示できます。 WindowsのDOSボックスから 'adb shell'コマンドを使ってファイルを見ることができ、その権限が正しく設定されているように見えます。ただし、Windowsエクスプローラからディレクトリを表示すると、 'testfile.txt'は表示されません。隠しファイルとシステムファイルを表示するオプションを設定しましたが、運がありません。
「testfile.txt」の名前を変更するためにASUSファイルマネージャーアプリケーションを使用すると、Windowsエクスプローラで表示されるようになり、他のアプリはエクスプローラでファイルを表示できるようになります。
ZTE Blade(オレンジサンフランシスコ)で同じコードを実行すると、名前を変更することなくWindowsエクスプローラで 'testfile.txt'が表示されます。
このファイルを完成させて見えるようにするために何か他に必要なことはありますか?
同様の問題がここで報告されていますが、Can't see a file in Windows written by an android app on sd-card unless I "Force Close" the appですが、私の場合は強制的に閉じるとファイルが表示されません。
MediaScannerConnection呼び出しはどこに配置しますか?ファイルを閉じた後は? –
私はwrite()の後でflush()およびclose()の前にMediaScannerConnectionコールを配置しました。 –
も私のために働いていました!どうも!!それはPCとの接続に関連しているようだ... – Billyjoker