JAVA JAVAFX Как создать папку в zip архиве, используя filesystem?

165
05 января 2019, 18:20

Использую следующую конструкцию.

Manager.java

public class Manager {
private FileSystem storage;
public String createStorage(String path, String name) {
    try {
        InputStream in = Manager.class.getResourceAsStream("storage.bmd");
        File fileDestination = new File(path + "/" + name + ".bmd");
        if (Files.notExists(fileDestination.toPath())) Files.copy(in, fileDestination.toPath());
        return fileDestination.toString();
    } catch (IOException ex) {
        Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
    }
    return null;
}
public boolean selectStorage(String path) {
    try {
        Map <String,String> env = new HashMap();
        env.put("create","true");
        URI uri = URI.create("jar:file:" + path);
        storage = FileSystems.newFileSystem(uri,env);
        return true;
    } catch (IOException ex) {
        Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
    }
    return false;
}
public boolean createCatalog(String path) {
    if (storage == null) return false;
    Path storagePath = storage.getPath(storage.getRootDirectories().toString(), path);
    System.out.println(storagePath);
    if (Files.notExists(storagePath)) {
        try {
            System.out.println(storagePath.getFileSystem());
            Files.createDirectories(storagePath);
            return true;
        } catch (IOException ex) {
            Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    return false;
  }
}

Main.java

Manager manager = new Manager();
manager.createStorage("/Users/osadchi/Dropbox/0sadchi/BMStorage/", "storage");

manager.selectStorage("/Users/osadchi/Dropbox/0sadchi/BMStorage/storage.bmd"); manager.createCatalog("Assortment1");

Запускал на Win7x64 и macOS X Sierra, jdk 1.8; Все работает прекрасно, при запросе Files.notExists("someFilderInZip"); определяет верно, если создать папку в ручную и проверить ее наличие. Но проблема начинается при использовании Files.createDirectories(); Он пришет, что операция завершена успешно и при проверке результирующего Path, пишет, что директория существует, но ее - нет. В файле не производится никаких изменений.

Права выставлены на Read & Write для всех групп.

READ ALSO
Шрифт на iPhone мелче, чем нужно

Шрифт на iPhone мелче, чем нужно

Подскажите, почему на iPhone шрифт номеров телефонов в подвале сайта мелкий, хотя свойствами он стоит больше гораздоЧерез проверку через браузер...

186
Как ссылку на сайте открыть в приложении андроид?

Как ссылку на сайте открыть в приложении андроид?

Коллеги, на сайте есть обычная ссылка

201
Моожно ли использоваться цикл for внутри while?

Моожно ли использоваться цикл for внутри while?

Cтолкнулся с такой проблемой, у меня зацикливается код

188
File loader img, webpack

File loader img, webpack

Всем приветПроблема с вебпаком

180