File.mkdir不工作,我不明白为什么

问题描述:

我有这个简短的片段:File.mkdir不工作,我不明白为什么

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"); 
       } 

,如果我离开的最后一个字符(通常是一个斜杠)不mattere。它通过这种方式在unix和windows上工作。该路径实际上是从基础文件夹的URI获取的。正如你可以从baseFolder.toString()看到的(baseFolder的类型是URI并且是正确的)。基本文件夹实际存在。我无法调试,因为我从mkdir得到的是真或假,没有其他解释。奇怪的是,baseFolder也是用mkdir创建的,在这种情况下它可以工作。

现在我在windows下。


目标只是建立TARGETDIR的前值是“文件:/ C:/用户/达里奥/ jCommesse/jCommesseDB” 如果我剪切和粘贴(不含最后一项)在Windows探索吧作品...

+0

'target'的值是多少?它是否包含'“file://”'? – 2010-03-22 15:05:30

+2

标题可能已经以“not working”结尾:) – medopal 2010-03-22 15:33:01

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

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

D'Oh!我错过了显而易见的构造函数! – 2010-03-22 15:21:17

+0

D'ho! :D今天我厌倦大家对不起:D – gotch4 2010-03-22 15:27:13

它看起来,对我来说,就像在开始时的“file:/”是问题...尝试getAbsolutePath()而不是toString()。

File constructor taking a String需要一个路径名。路径名是而不是的URI。

从字符串的前面删除file:/(或者更好的是,使用getPath()而不是toString())以获得所需的路径。