【问题标题】:Android: File written in external storage is not showingAndroid:写入外部存储的文件未显示
【发布时间】:2019-06-14 07:34:59
【问题描述】:

我正在尝试编写一个文本文件并将其保存在 android 外部存储中,但文件未显示并且我没有收到任何错误。

这是我的代码:

String r;
String fname= "readme.txt";
r = Environment.getExternalStorageDirectory().toString();

File myDir = new File(r);    
if (!myDir.exists()) {
    myDir.mkdirs();
}

File file = new File (myDir, fname);
if (file.exists ())
    file.delete (); 

try {
    FileOutputStream out = new FileOutputStream(file);
    Out.write(wfile)
    out.flush();
    out.close();
} catch (Exception e) {
     e.printStackTrace();
}

【问题讨论】:

  • 更改 e.printStackTrace();到 Log.e("APP", "不好!" +e);查看 LogCat 上的错误...我猜你没有授予 External_Storage_permission。
  • 我想我必须尝试读取文件。并检查文件和目录是否存在。而且我已经授予 External_Storage_permission。但我不知道文件保存在哪里。而且文件是否真的保存了。

标签: java android filesystems


【解决方案1】:

试试下面的东西。您可以根据需要添加验证以检查文件是否存在。

        File file =  new 
File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "readme.txt");
        FileOutputStream out = new FileOutputStream(file);
        out.write(wfile);
        out.flush();
        out.close();
        MediaScannerConnection.scanFile(mContext, new String[] { file.toString() }, null,new MediaScannerConnection.OnScanCompletedListener() {
            public void onScanCompleted(String path, Uri uri) {
                Log.i("ExternalStorage", "Scanned " + path + ":");
                Log.i("ExternalStorage", "-> uri=" + uri);
            }
       });

仅供参考,Environment.DIRECTORY_DOCUMENTS 可能不存在于较旧的 android 版本中。然后你可能需要添加一个验证来检查它,如果没有则创建一个目录。

【讨论】:

猜你喜欢
  • 2012-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-21
  • 1970-01-01
  • 2016-10-14
  • 2019-02-09
相关资源
最近更新 更多