File.mkdir не работает, и я не могу понять, почему - PullRequest
2 голосов
/ 22 марта 2010

У меня есть этот короткий фрагмент:

String target = baseFolder.toString() + entryName;
                target = target.substring(0, target.length() - 1);
                File targetdir = new File(target);
                if (!targetdir.mkdirs()) {
                    throw new Exception("Errore nell'estrazione del file zip");
                }

не имеет значения, если я оставлю последний символ (обычно это косая черта). Это сделано для работы как на Unix, так и на Windows. Путь фактически получается из URI базовой папки. Как вы можете видеть из baseFolder.toString () (baseFolder имеет тип URI и является правильным). Базовая папка действительно существует. Я не могу отладить это, потому что все, что я получаю - это истина или ложь из mkdir, никаких других объяснений. Странная вещь в том, что baseFolder также создается с помощью mkdir и в этом случае он работает.

Теперь я под окнами.


значением target перед созданием targettdir является «file: / C: / Users / dario / jCommesse / jCommesseDB» если я вырезать и вставить его (без последней записи) в Windows исследовать это работает ...

Ответы [ 3 ]

4 голосов
/ 22 марта 2010

Указанный вами путь - это не путь к файлу, а URI. Я предлагаю вам попробовать следующее:

URI uri = new URI("file://c:/foo/bar");
File f = new File(uri).
1 голос
/ 22 марта 2010

Конструктор File, принимающий String, ожидает имя пути.Имя пути - , а не URI.

Удалите file:/ с начала строки (или еще лучше, используйте getPath() вместо toString()) чтобы добраться до нужного вам пути.

1 голос
/ 22 марта 2010

Для меня это выглядит так, как будто "file: /" в начале является проблемой ... Попробуйте getAbsolutePath () вместо toString ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...