【悬赏50凯币】Andlua复制文件到data

综合技术   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2023-4-4

我现在有一个压缩包,想复制到Android/data/xxxx.xxx文件夹下面并且解压
访问data现在使用的是这个大佬写的代码

本帖含有隐藏内容,请您 回复 后查看

能够创建读写Android/data下面的文件,但是这个大佬没有写复制文件的方法,我试着先读取文件再写入,写出的文件不仅打不开,大小也大了一倍[泪]有大佬有相关的代码教教菜狗呗(Android版本11)[滑稽]

保存的时候选择覆盖文件不懂自己看官方文档
您可以使用Java NIO库中的java.nio.file.Files类提供的方法来复制文件和解压压缩包。以下是基本的代码结构和说明:

复制文件

可以使用Files.copy()方法复制文件。该方法需要传递源文件路径和目标文件路径。假设您要复制的文件名为example.zip,源文件路径是/data/example.zip,目标文件路径是/storage/emulated/0/Android/data/xxxx.xxx/example.zip,那么以下是复制文件的代码示例:
Path source = Paths.get("/data/example.zip");
Path target = Paths.get("/storage/emulated/0/Android/data/xxxx.xxx/example.zip");
Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING);

解压压缩包

可以使用Java API中的java.util.zip.ZipInputStream类来解压一个压缩包里所有的文件。假设您要解压的压缩包名称为example.zip,压缩包路径是/storage/emulated/0/Android/data/xxxx.xxx/example.zip,解压到目标路径是/storage/emulated/0/Android/data/xxxx.xxx/example_directory/,那么以下是解压压缩包的代码示例:
Path zipFilePath = Paths.get("/storage/emulated/0/Android/data/xxxx.xxx/example.zip");
Path targetPath = Paths.get("/storage/emulated/0/Android/data/xxxx.xxx/example_directory/");

try (InputStream inputStream = Files.newInputStream(zipFilePath);
ZipInputStream zipInputStream = new ZipInputStream(inputStream)) {
ZipEntry entry;
while ((entry = zipInputStream.getNextEntry()) != null) {
Path entryPath = targetPath.resolve(entry.getName());
if (entry.isDirectory()) {
Files.createDirectories(entryPath);
} else {
Files.copy(zipInputStream, entryPath, StandardCopyOption.REPLACE_EXISTING);
}
}
} catch (IOException e) {
e.printStackTrace();
}

在上述代码中,我们首先打开目标zip文件并创建ZipInputStream对象,然后对压缩包中的每个条目进行逐个处理。对于每个目录类型的条目,我们通过创建目录的方式创建它;对于所有的文件类型的条目,我们通过使用Files.copy()方法将其写入到目标路径中。
需要注意的是,复制和解压文件都可能会因为访问权限或目录不存在的原因导致操作失败,因此在代码中需要进行错误处理。另外,上述代码示例中的路径仅供参考,具体路径需要根据应用程序的需求进行相应的调整。
希望以上信息能够对您有所帮助。
地板
云残影梦 2023-4-5
一股gpt味[滑稽]我这是andlua啦

评论

登录后才可发表内容
  • 主题

    3

  • 帖子

    365

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0937s Mem:2089Kb