1

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

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

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

4

3 回答 3

1

这可以解决问题:

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

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

于 2015-05-08T15:46:20.897 回答
0

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

  • 断开/重新连接手机
  • 重启手机/电脑
于 2013-06-05T06:25:47.740 回答
0

该问题是由于您的 Android 应用程序的默认文件创建权限与您 PC 的用户权限不兼容造成的……这是 Android 的一个已知问题,并且不容易解决。

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

如果您的设备没有植根,那么您可能必须使用云服务(例如 Dropbox 或 Google Drive)将文件移动到云中,然后您的 PC 可以访问该云。

于 2013-12-13T22:05:06.917 回答