gpt4 book ai didi

java - 安卓|获取文件 (.zip) 并保存

转载 作者:行者123 更新时间:2023-11-29 04:49:17 25 4
gpt4 key购买 nike

在我的应用中,我会从我的外部存储中打开一个 (.zip) 文件并将其保存在内部应用存储中。

要打开文件,我使用:

Intent intent = new Intent();
intent.setType("*/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select"), requestCode);

然后,我尝试将它用于:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 7 && resultCode == Activity.RESULT_OK && null != data) {
Log.d("IMPORT","Start Process");
Uri uri = data.getData();
File file = new File(uri.getPath());
String path = file.getAbsolutePath();
//some function

//error:
InputStream is = new FileInputStream(path);
}
}

现在,使用函数 InputStream is = new FileInputStream(path); 我返回 java.io.FileNotFoundException:/document/primary:Download/example/file.zip: open failed: ENOENT(没有这样的文件或目录)

保存图像时没有问题,但我从未保存过 zip 文件。

最佳答案

To open file, I use:

首先,它不会打开文件。这请求访问一段内容。

其次,如果您想要 ZIP 文件,您可能希望使用 application/zip,而不是 */*。否则,欢迎用户选择 ZIP 文件以外的文件。

I've not problems when I save the images

如果您使用与上面相同的代码,那么您的代码将不适用于大多数 Android 设备,无论是图像、ZIP 文件还是其他任何设备。

A Uri is not a file.

Uri 是一些内容的不透明句柄,保存在其他应用程序中。要使用该 Uri,请从附近的 Context(例如,您的 Activity)获取 ContentResolver。然后,使用 openInputStream() 获取内容的 InputStream

如果 Uri 碰巧 有一个file 方案,那么getPath() 将是一个文件系统路径。然而:

关于java - 安卓|获取文件 (.zip) 并保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36021964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com