私はサイトの他のユーザーが既に問題を抱えています。私はそれらのソリューションを試してみて、私のために働かなかった。SDカードに書き込むときにAndroidのcsvファイルが表示されない
私は現在、ユーザーの入力に基づいてcsvファイルを作成するアプリケーションを開発しています。デバイスがUSB経由でPCに接続されている場合、ファイルをユーザーが取得できる必要があります。保存コード機能は正しく機能しますが、デバイスが接続されているときにファイルがPCに表示されません。ファイルが外部ストレージに書き込まれていると私はより多くのスペースが取られることがわかりますが、ファイル自体はまだ表示されていない
FileWriter fileWriter = null;
File sdCard = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
File dir = new File(sdCard.getAbsolutePath() + "/appFolder/");
File dir2 = new File(sdCard.getAbsolutePath() + "/appFolder/appSubFolder/");
dir.mkdirs();
dir2.mkdirs();
fileName = clientName + " " + agentName + ".csv";
path = sdCard.getAbsolutePath() + "/appFolder/appSubFolder/";
file = new File(dir2, fileName);
dir.setReadable(true);
dir.setWritable(true);
dir.setExecutable(true);
dir2.setReadable(true);
dir2.setWritable(true);
dir2.setExecutable(true);
file.setReadable(true);
file.setWritable(true);
file.setExecutable(true);
this.clientName = clientName;
this.agentName = agentName;
BufferedWriter bufferedWriter = null;
try {
if(!dir.exists()){
dir.createNewFile();
Toast.makeText(context,"dir created", Toast.LENGTH_SHORT).show();
}
if(!dir2.exists()){
dir2.createNewFile();
Toast.makeText(context,"dir2 created", Toast.LENGTH_SHORT).show();
}
if (!file.exists())
{
file.createNewFile();
Toast.makeText(context,"file created", Toast.LENGTH_SHORT).show();
}
/*
fileWriter = new FileWriter(file, true);
bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(fullOrder);
fileWriter.flush();
bufferedWriter.flush();
bufferedWriter.close();
fileWriter.close();
*/
FileOutputStream fileOutputStream = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
outputStreamWriter.append(fullOrder);
outputStreamWriter.close();
fileOutputStream.close();
MediaScannerConnection.scanFile(context, new String[]{file.toString()}, null, null);
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(dir)));
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(dir2)));
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file)));
} catch (IOException ioEx) {
Toast.makeText(context, ioEx.toString(), Toast.LENGTH_SHORT).show();
Log.d("mTag", "msg");
Log.d("Exception ioEx 1", ioEx.toString());
} catch (Exception ex) {
Toast.makeText(context, ex.toString(), Toast.LENGTH_SHORT).show();
Log.d("mTag", "msg");
Log.d("Genereic ex saveToFile", ex.toString());
}
:
これはアプリの完全な省コードスニペットです。
問題が発生した場合は、何か助けていただければ幸いです。ありがとうございました!
こんにちは、私はあなたのソリューションを試して、それは正常に動作していないようでした。私が追加したトーストは決して表示されませんでした。 チェックする前に十分に待っていない可能性があるため、スキャンにどのくらい時間がかかりますか。 ありがとうございました! –
あなたはコンソール上のパスでスキャン完了テキストを見ることができましたか?それには時間がかかることがあります。 – MobileEvangelist
私はまだできませんでしたが、実際には内部のDCIMディレクトリに保存していたことに気付きましたが、あなたの助けがなくても目に見えません。ご協力ありがとうございました! –