2010-03-22 65 views
2

我有這個簡短的片段: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

回答

4

您提供的路徑不是文件路徑,而是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

1

它看起來,對我來說,就像在開始時的「file:/」是問題...嘗試getAbsolutePath()而不是toString()。

1

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

從字符串的前面刪除file:/(或者更好的是,使用getPath()而不是toString())以獲得所需的路徑。

相關問題