无法访问我在PC上的Android应用中创建的文件

时间:2013-06-05 06:02:25

标签: java android

我写了一些应用程序,将一些数据写入SD卡的外部存储器中(实际上我没有SD卡,但是路径是/ sdcard / map / file。当我使用ES File explorer检查手机上的文件时,我可以看到并打开文件,但我在PC上看不到这个文件。有人知道会出现什么问题吗?

private void createMapFile(String fileName, byte mapBytes[]) throws IOException {       
            File filePath = new File(Environment.getExternalStorageDirectory().getPath() + "/map/"+ fileName);

            FileOutputStream os = new FileOutputStream(filePath, true);
            os.write(mapBytes);
            os.close();
        }

这是我用于将二进制数据数组写入文件的方法。

3 个答案:

答案 0 :(得分:1)

这样可以解决问题:

File myFile;
...
// myFile creates somewhere here
...
MediaScannerConnection.scanFile(context, new String[]{myFile.getAbsolutePath()}, null, null);

之后,您将立即在连接的PC上看到创建的文件。

答案 1 :(得分:0)

它必须在MTP上,对吧?如果您在写入文件后立即浏览SD卡,则MTP界面可能不会显示更改。尝试

  • 断开/重新连接手机
  • 重新启动手机/ PC

答案 2 :(得分:0)

问题是由于您的Android应用的默认文件创建权限与您的PC的用户权限不兼容...这是Android的已知问题,并且不容易解决。

如果您的Android设备已植根,则可以通过使用“chmod”linux terminal命令更改文件的权限,以使文件全局可见,而不是仅对其创建者可见。这将使您的PC能够查看该文件。

如果您的设备没有root,那么您可能需要使用Dropbox或Google Drive等云服务将文件移至云端,然后您的PC就可以访问该云端。