Java Android open失败:EROFS(只读文件系统)错误
我在将zip文件的内容提取到SD卡上的目录时遇到问题。调试应用程序时,我可以看到错误列表为Java Android open失败:EROFS(只读文件系统)错误,java,android,filenotfoundexception,Java,Android,Filenotfoundexception,我在将zip文件的内容提取到SD卡上的目录时遇到问题。调试应用程序时,我可以看到错误列表为java.io.FileNotFoundException:/testFile.zip:open failed:EROFS(只读文件系统)error 我已经确保清单文件中包含 我有点不明白为什么我会收到这封邮件,因为我想解压的内容都在SD卡上 记录文件夹路径,并确保它们指向您期望的位置 因为我们没有所有相关的代码,所以很难确定问题是什么,或者即使代码中有问题 我刚刚得到了一个简单的示例,使用来自的代码进
java.io.FileNotFoundException:/testFile.zip:open failed:EROFS(只读文件系统)error
我已经确保清单文件中包含
我有点不明白为什么我会收到这封邮件,因为我想解压的内容都在SD卡上 记录文件夹路径,并确保它们指向您期望的位置 因为我们没有所有相关的代码,所以很难确定问题是什么,或者即使代码中有问题 我刚刚得到了一个简单的示例,使用来自的代码进行了工作和测试。 也许这将有助于看到一个可用的示例作为参考,以确保您的代码是正确的 我使用了一个简单的zip文件,其中包含两个嵌套文件夹和一个文本文件
hello/secondFolder/hello.txt
正如您在日志中所看到的,它正在我的设备上使用虚拟的sdcard
:/storage/emulated/0/
Decompress.java(直接从上面的链接获取):
MainActivity.java:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String zipFile = Environment.getExternalStorageDirectory() + "/helloWithFolder.zip";
String unzipLocation = Environment.getExternalStorageDirectory() + "/unzipped/";
Log.d("Unzip", "Zipfile: " + zipFile);
Log.d("Unzip", "location: " + unzipLocation);
Decompress d = new Decompress(zipFile, unzipLocation);
d.unzip();
}
日志:
验证是否已成功解压缩:
shell@jfltetmo:/sdcard $ cd unzipped
shell@jfltetmo:/sdcard/unzipped $ ls
hello
shell@jfltetmo:/sdcard/unzipped $ cd hello
shell@jfltetmo:/sdcard/unzipped/hello $ ls
secondFolder
shell@jfltetmo:/sdcard/unzipped/hello $ cd secondFolder
shell@jfltetmo:/sdcard/unzipped/hello/secondFolder $ ls
hello.txt
shell@jfltetmo:/sdcard/unzipped/hello/secondFolder $ cat hello.txt
hello
编辑:
我刚用一个错误的zip名称进行了测试,结果出现了以下错误:
java.io.FileNotFoundException:/storage/emulated/0/helloBad.zip:open失败:enoint(没有这样的文件或目录)
请发布您的FileManagement
类。并发布所选文件和droppeItem的值,确保它们位于您可以合法写入的位置。selectedItem是我正在从列表中拖动的项目。它由item.getText().toString()设置代码>其中项为ClipData.item item=event.getClipData().getItemAt(0)代码>我没有包括fileManagement类,因为它非常非常长。您被要求告诉selectedItem的值是多少。不是你怎么来的,因为我们不知道这条路会变成什么样子。selectedItem中的路径是什么?你打算把解压后的文件存放在哪里?请输入准确路径。错误列为java.io.FileNotFoundException:/testFile.zip:
。我不相信你。如果你真的想保存到SD卡,你会看到一个绝对路径。不是一个短文件名。为什么是领先空间?
04-03 12:11:06.472 19427-19427/com.zipfile.daniel.zipfileextract D/Unzip﹕ Zipfile: /storage/emulated/0/helloWithFolder.zip
04-03 12:11:06.472 19427-19427/com.zipfile.daniel.zipfileextract D/Unzip﹕ location: /storage/emulated/0/unzipped/
04-03 12:11:06.472 19427-19427/com.zipfile.daniel.zipfileextract V/Unzip﹕ Unzipping hello/
04-03 12:11:06.472 19427-19427/com.zipfile.daniel.zipfileextract V/Unzip﹕ Unzipping hello/secondFolder/
04-03 12:11:06.472 19427-19427/com.zipfile.daniel.zipfileextract V/Unzip﹕ Unzipping hello/secondFolder/hello.txt
shell@jfltetmo:/sdcard $ cd unzipped
shell@jfltetmo:/sdcard/unzipped $ ls
hello
shell@jfltetmo:/sdcard/unzipped $ cd hello
shell@jfltetmo:/sdcard/unzipped/hello $ ls
secondFolder
shell@jfltetmo:/sdcard/unzipped/hello $ cd secondFolder
shell@jfltetmo:/sdcard/unzipped/hello/secondFolder $ ls
hello.txt
shell@jfltetmo:/sdcard/unzipped/hello/secondFolder $ cat hello.txt
hello