【问题标题】:Android: save file to downloads that can be viewed laterAndroid:将文件保存到以后可以查看的下载
【发布时间】:2013-01-29 22:13:42
【问题描述】:

我有一个应用需要在连接到流时收集大量数据。我需要将此数据保存到一个文件中,以便以后可以从我的设备中取出并使用标准计算机进行分析。

我的代码目前看起来像:

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());
    }       
}

它正确地点击了“数据保存”日志,没有任何错误,但是当我从我的计算机浏览它时,我无法在设备内部存储中的任何地方找到该文件。

我错过了什么?

谢谢。

编辑:我需要在 Nexus 7 上运行它

【问题讨论】:

  • 您是否尝试过从您的 file 变量打印绝对路径 (developer.android.com/reference/java/io/…),然后尝试使用 adb shell 导航到那里?
  • 您是否将 添加到清单文件中?
  • 权限已设置。在我得到它之前它抛出了一个错误,所以我确信那部分是好的。它似乎没有在任何地方创建文件。
  • 那个绝对路径怎么样?
  • 您可以使用adb pull /mnt/shell/emulated/0/Download/_Ascent_Test.txt 获取文件。或者在 Eclipse 中使用 DDMS 中的文件视图。

标签: android file saving-data


【解决方案1】:

除非您明确使它们可用,否则文件是不可见的。请参阅我的blog post about the MediaScanner 了解更多相关信息。

开发人员的工作是处理此问题并确保用户可能想要访问的所有文件都可供 MediaScanner 使用。

【讨论】:

  • 谢谢。这真的不明显。
  • 你为我节省了很多时间,这应该更清楚
【解决方案2】:

我想做一件非常相似的事情。这就是我如何使用您的代码完全使用它的方法。

运行我的代码制作文件后(/storage/emulated/0/Download/_Ascent_Test.txt):

我下载了 ES 文件资源管理器。

在底部的“快速访问”菜单中,我打开了“显示隐藏文件”。

然后,同样在“快速访问”菜单中,转到本地 -> / 设备。

现在您将能够导航到 /storage 文件夹并一直到 _Ascent_test.txt

您可以从那里打开它并自己发送电子邮件。 希望这有帮助!

【讨论】:

    【解决方案3】:

    所以这似乎是 Nexus 4 和 7 的一个已知问题。我仍然没有解决方法,但目前,使用 Astro 文件管理器向自己发送电子邮件将解决手头的直接问题。

    Saving files on external storage on Nexus 7 and retrieving from PC

    Nexus 4 not showing files via MTP

    在这样的事情上浪费几个小时总是很有趣。呸!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多