Java Can';t访问我在PC上的Android应用程序中创建的文件
我写了一些应用程序,将一些数据写入SD卡上的外部存储器(实际上我没有SD卡,但路径是/sdcard/map/file。当我用ES file explorer检查手机上的文件时,我可以看到并打开文件,但我在PC上看不到该文件。有人知道可能是什么问题吗Java Can';t访问我在PC上的Android应用程序中创建的文件,java,android,Java,Android,我写了一些应用程序,将一些数据写入SD卡上的外部存储器(实际上我没有SD卡,但路径是/sdcard/map/file。当我用ES file explorer检查手机上的文件时,我可以看到并打开文件,但我在PC上看不到该文件。有人知道可能是什么问题吗 private void createMapFile(String fileName, byte mapBytes[]) throws IOException { File filePath = new File
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();
}
这是我用来将二进制数据数组写入文件的方法。它必须在MTP上,对吗?如果您在写入文件后立即浏览SD卡,MTP界面可能不会显示更改。请重试
- 断开/重新连接手机
- 重新启动手机/电脑
- 断开/重新连接手机
- 重新启动手机/电脑
如果您的设备没有根目录,则您可能必须使用云服务(如Dropbox或Google Drive)将文件移动到云中,然后您的电脑才能访问该文件。该问题是由于Android应用程序的默认文件创建权限与您电脑的用户权限不兼容造成的。这是一个已知问题n安卓的问题,不容易解决 如果您的Android设备是根设备,您可以通过使用“chmod”linux终端命令更改文件的权限,使文件全局可见,而不是仅对其创建者可见。这将使您的PC能够查看该文件
如果您的设备没有根目录,那么您可能需要使用云服务(如Dropbox或Google Drive)将文件移动到云端,然后您的电脑可以访问该文件。这将实现以下目的:
File myFile;
...
// myFile creates somewhere here
...
MediaScannerConnection.scanFile(context, new String[]{myFile.getAbsolutePath()}, null, null);
之后,您将立即在连接的PC上看到创建的文件。这将实现以下功能:
File myFile;
...
// myFile creates somewhere here
...
MediaScannerConnection.scanFile(context, new String[]{myFile.getAbsolutePath()}, null, null);
之后,您将立即可以在连接的PC上看到创建的文件。您如何编写文件?发布代码。路径
/sdcard/map/
可能不是USB大容量存储的装入点。我发布了将数据写入文件的方法。是的,路径看起来正常。您的意思是在模拟器中看不到文件吗?不,我已连接手机在PC上安装USB,当我在手机上浏览文件时,“地图”是空的。您如何写入文件?请发布代码。路径/sdcard/map/
可能不是USB大容量存储的装入点。我发布了将数据写入文件的方法。是的,路径看起来正常。您的意思是您无法在模拟器中看到该文件?不,我已通过PC上的USB连接电话,当我在手机上浏览文件时,“map”是空的。除了这个问题已经有了准确的答案外,您的建议还存在两个问题。首先,问题中提到的传统外部存储不存在仅所有者访问权限的概念。其次,云服务有几种替代方案:第一,使用外部存储作为此任务第二,即使在非根设备上使用私有存储,文件的所有者(通常是创建文件的应用程序)能够设置模式位以允许所有人访问。除了这个问题已经有了准确的答案外,您的建议还存在两个问题。首先,问题中提到的传统外部存储不存在仅所有者访问权限的概念。其次,云服务有几种替代方案ices:首先,像这个问题一样使用外部存储,而不是私有存储。其次,即使在非根设备上使用私有存储,文件的所有者(通常是创建它的应用程序)也能够设置模式位以允许每个人访问。