public static void deleteFilesInZip(
String zipStringPath,
List<String> paths
) throws IOException
{
Map<String, String> env = new HashMap<>();
env.put("create", "false");
Path zipPath = Paths.get(zipStringPath);
URI uri = URI.create("jar:" + zipPath.toUri());
try (FileSystem fs = FileSystems.newFileSystem(uri, env))
{
for(String path: paths)
{
Path filePath = fs.getPath(path);
Files.delete(filePath);
}
}
}
Приведенный выше лог c отлично работает в ОС MA C, но выдает следующую ошибку в Windows:
ОШИБКА: java .nio.file.FileSystemException: C: \ Users \ XSXDXX \ Downloads \ Test.zip: процесс не может получить доступ к файлу, поскольку он используется другим процессом.
Каков наилучший способ удаления файлов в Zip, когда я знаю пути файлов, которые мне нужно удалить заранее?