File.mkdir无法正常工作,我无法理解为什么

时间:2010-03-22 15:01:05

标签: java filesystems

我有这个简短的片段:

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创建的,在这种情况下它可以工作。

现在我在窗户下。


targetdir创建之前的目标值是“file:/ C:/ Users / dario / jCommesse / jCommesseDB” 如果我在Windows浏览器中剪切并粘贴它(没有最后一个条目)它可以工作......

3 个答案:

答案 0 :(得分:4)

您提供的路径不是文件路径,而是URI。 我建议你尝试以下方法:

URI uri = new URI("file://c:/foo/bar");
File f = new File(uri).

答案 1 :(得分:1)

对我来说,好像开头的“file:/”是问题...尝试getAbsolutePath()而不是toString()。

答案 2 :(得分:1)

File constructor taking a String需要路径名。路径名称是URI。

从字符串的前面删除file:/(或者更好的是,使用getPath()而不是toString())来到达您需要的路径。