我想將某個文件保存到SDCard文檔文件夾的子文件夾中。我已經閱讀了很多文章,最後我沒有任何異常,看起來文件存儲沒有問題,但是當我將手機連接到comp時,仍然無法看到文件夾,也沒有文件。android棉花糖在SD卡上寫公共文件
編輯
文件創建
我在清單文件
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我要求寫權限的授予權限發生這種情況只在設備上,在模擬器,用戶,它被授予。這裏這篇文章 This post helped me in granting permission
是我的代碼
if (!Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED)) {
Toast.makeText(_ctx, "There is no external storage", Toast.LENGTH_LONG).show();
} else {
File docfolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
docfolder.mkdirs();
if (!docfolder.exists()) {
Toast.makeText(_ctx, "Documents doesn't exist", Toast.LENGTH_LONG).show();
}
File folder = new File(docfolder, foldername);
folder.mkdirs(); //make if not exist
boolean isPresent = folder.exists();
if (isPresent) {
File file = new File(folder.getAbsolutePath(), filename);
try {
OutputStream os = new FileOutputStream(file);
os.write(xml.getBytes());
os.close();
} catch (IOException e) {
Toast.makeText(_ctx, e.toString(), Toast.LENGTH_LONG).show();
Log.w("ExternalStorage", "Error writing " + file, e);
}
catch (Exception e) {
Toast.makeText(_ctx, e.toString(), Toast.LENGTH_LONG).show();
Log.w("ExternalStorage", "Error writing 2 " + file, e);
}
} else {
Toast.makeText(_ctx, "cannot make directory " + foldername, Toast.LENGTH_LONG).show();
Log.w("ExternalStorage", "cannot make directory " + foldername);
}
任何暗示的歡迎!
編輯
也許這個問題可能是這段代碼保存文件到這條道路?
/storage/emulated/0/Documents/IBHTrack/ibhTrack_GPX_20170706153858.xml
但是由於我使用的方法Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS)
,我不知道如何才能獲得真正的SD卡路徑
https://stackoverflow.com/questions/32789157/how-to-write-files-to-external-public-storage-in-android -so-that-they-are-visibl – CommonsWare
[如何在Android中將文件寫入外部公用存儲以使它們可以從Windows中看到?](https://stackoverflow.com/questions/32789157/how-to -write-files-to-external-public-storage-in-android-so-that-they-are-visibl) – Sanoop
謝謝,但似乎mediascanner並沒有幫助我。 – pillesoft