在Android设备中以编程方式创建的文件在PC上是不可见的

时间:2016-01-22 19:25:51

标签: android file io

我不确定,如果这是SO的正确问题,但由于它与编程相关,我把它放在这里。我正在为Android开发UI应用程序。该应用程序在外部存储器中创建一些文件。

我试图在我的电脑上备份这些文件。我插入设备,甚至找不到我的应用程序目录。不过,它在我手机的文件浏览器中。重新插拔并不起作用。它可以通过手动改变某些文件来解决,例如更改一些文件的名称,创建一个新目录。这刷新了整个事情。结果,我的计算机文件浏览器滞后了一段时间并显示文件。似乎文件被缓冲到PC中,我的应用程序没有权限在其IO之后订购一个rebuffer。

这不仅仅是一些显示问题,这些文件在我的应用程序工作后确实保持不变。我在我的应用程序中生成了不同的结果,因此它会覆盖旧文件。在设备的浏览器中,我看到了最新的文件,但在桌面上我得到了旧文件(即使将它们复制到硬盘后)。

我的桌面是Windows 7 64bit,我的手机是华为荣耀4X,我使用的是原装线。 我之前的手机是Galaxy Core Plus,我没有遇到这个问题(使用相同的应用程序)。我认为华为的rom可能是一个小小的车。在我通过桌面删除某些文件后,它仍显示在手机的文件管理器中。

有可能以某种方式刷新"这个连接是以编程方式进行的,所以它会在任何设备上显示最新结果吗?

1 个答案:

答案 0 :(得分:0)

您可以根据需要实施此功能:

void MakeFileAvailable (Context context, File file)
{
    MediaScannerConnection.scanFile(context,
            new String[] { file.toString() }, null,
            new MediaScannerConnection.OnScanCompletedListener() {
                public void onScanCompleted(String path, Uri uri){
                    Log.d(TAG, "File scanned" + path);
                }
            });

}

在上下文参数中,您必须设置活动的上下文。您可以使用函数'getBaseContext()'在活动类中获取上下文。