.csvファイルを見つけるのに問題があります。自分のAndroidデバイスをコンピュータに接続すると、ファイルエクスプローラに作成して書き込みます。私のアプリケーションが作成している外部ディレクトリのファイルが見つかりません
私はそうのように、私のマニフェストでWRITE_EXTERNAL_STORAGE
をしている:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
私は私のメインの活動では、この機能を使用してファイルに書いています:
public void exportDatabase() {
File folder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
+ "/Folder");
boolean var = false;
if (!folder.exists()) {
Log.d(EXPORT_DATA_TAG, "Folder does not exist");
var = folder.mkdir();
Log.d(EXPORT_DATA_TAG, "mkdir() success? " + var);
}
CharSequence contentTitle = getString(R.string.app_name);
final ProgressDialog progDailog = ProgressDialog.show(
this, contentTitle, "Exporting data...",
true);
final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
}
};
final String filename = folder.toString() + "/" + "LeadCapture.csv";
Log.d(EXPORT_DATA_TAG,"Writing data to file: " + filename);
new Thread() {
public void run() {
boolean success = writeData(filename);
if (success) {
handler.sendEmptyMessage(0);
Log.d(EXPORT_DATA_TAG,"Write successful to .csv");
} else {
Log.d(EXPORT_DATA_TAG,"Failed to write to .csv");
}
progDailog.dismiss();
}
}.start();
}
これは、書き込み関数を呼び出します私のデータベースヘルパークラス:
Logcatは、ファイルが正常に/storage/sdcard1/Download/Folder/LeadCapture.csv
に書き込まれていると言いますが、ダウンロードフォルダまたはどこかでフォルダまたはファイルを見つけることができません。
私は、これは、このパス/storage/sdcard1/Folder/LeadCapture.csv
になり
File folder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
File folder = new File(Environment.getExternalStorageDirectory())
WRITE_EXTERNAL_STORAGE
の許可がないという問題がありました。理論的には、私のwriteFunction()が正しくないとしても、少なくとも私が見ることができる空のディレクトリを作成する必要があります。何か案は?
https://stackoverflow.com/questions/32789157/how-to-write-files-to-外部の公共のストレージでは、それは彼らがそうですか? – CommonsWare
あなたはあなたに読書許可を与えましたか? – ABDevelopers
'var = folder.mkdir()' mkdirs()が失敗すると続行しないでください。より良い: 'if(!folder.mkdir()){Toast(...); return;} '。そして、ファイルを作成できないと不平を言うことはありません。しかし、ディレクトリ。 – greenapps