3

ストリームに接続しているときに大量のデータを収集する必要があるアプリがあります。このデータをファイルに保存する必要があります。このファイルは、後でデバイスを取り出して、標準のコンピューターを使用して分析できます。

私のコードは現在次のようになっています:

private void saveData(byte[] data){
    File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
    File file = new File(path, "_Ascent_Test.txt");        
    try {                      
        FileOutputStream stream = new FileOutputStream(file, true);             
        stream.write(data);            
        stream.close();
        Log.i("saveData", "Data Saved");        
    } catch (IOException e) {
        Log.e("SAVE DATA", "Could not write file " + e.getMessage());
    }       
}

エラーなしで「データ保存済み」ログに正しくヒットしていますが、コンピューターからファイルを参照すると、デバイスの内部ストレージのどこにもファイルが見つかりません。

私は何が欠けていますか?

ありがとう。

編集:Nexus7でこれを実行する必要があります

4

3 に答える 3

4

明示的に使用可能にしない限り、ファイルは表示されません。これについて詳しくは、MediaScannerに関する私のブログ投稿を参照してください。

これを処理し、ユーザーがアクセスする可能性のあるすべてのファイルをMediaScannerで使用できるようにするのは開発者の仕事です。

于 2013-01-31T13:41:52.633 に答える
1

とても似たようなことをしたかったのです。これが私があなたのコードを正確に使ってそれを動かす方法です。

コードを実行してファイル(/storage/emulated/0/Download/_Ascent_Test.txt)を作成した後:

ESファイルエクスプローラーをダウンロードしました。

下部にある[高速アクセス]メニューで、[隠しファイルを表示する]をオンにしました。

次に、[高速アクセス]メニューでも、[ローカル]->[デバイス]に移動します。

これで、/ storageフォルダーに移動し、_Ascent_test.txtまで移動できるようになります。

そこから、それを開いて自分で電子メールで送信できます。これがお役に立てば幸いです。

于 2014-08-14T05:07:48.200 に答える
-1

したがって、これはNexus 4および7の既知の問題のようです。まだ回避策はありませんが、今のところ、AstroFileManagerを使用して自分にメールを送信することで当面の問題を解決できます。

Nexus7の外部ストレージにファイルを保存してPCから取得する

Nexus4がMTP経由でファイルを表示しない

このようなことで数時間を無駄にするのはいつも楽しいです。ああ!

于 2013-01-29T23:07:55.087 に答える