2012-01-30 35 views
1

這裏是我的情況:字符串轉換爲目錄名

String dir = "C:/root/dir1/"; 
for(File f: new File(dir).listFiles()) { 

} 

上執行:

System.out.println(new File(dir).isDirectory()); 
System.out.println(new File(dir)); 

false 
root/dir1 

存儲在字符串中是有效的路徑。在將字符串轉換爲文件類型時,它會丟失分隔符;如何保存目錄名稱?

謝謝。

+0

也許你可以嘗試給該目錄的全名? – bdecaf 2012-01-30 19:55:35

回答

1

要創建一個目錄,請使用以下代碼。請注意使用.mkdir()方法和雙反斜槓。

在你的代碼,我敢打賭的System.out.println(新建文件(目錄).isFile()將返回true。

import java.io.File; 

public class MakeDirectory { 

public static void main(String[] args) { 
    File f = new File("c:\\MyFolder"); 
    f.mkdir(); 

    } 
} 
0

就這麼簡單:root/dir1不是目錄。這可能是由以下幾個原因造成的:

  • 該文件夾不存在。
  • 這是一個文件而不是文件夾。
  • 父文件夾未正確指定。
+0

我這三種情況都不是真的 – 2012-01-30 19:54:18

+0

@rookie - 目錄的完整路徑是什麼?c:\ root \ dir1'或\\ home \ root \ dir1'? – ProfessionalAmateur 2012-01-30 20:00:27

+0

就像 - c:\ root \ dir1。我編輯了現有的問題,錯誤仍然存​​在 – 2012-01-30 20:03:25

0

通過執行「root/dir1 /」而不是「/ root/dir1 /」,你會告訴它尋找$ pwd/root/dir1,$ pwd通常來自classpath,這很可能不存在。

+0

我檢查了絕對路徑和路徑;兩者都顯得很好,它與丟失從字符串到文件轉換的最終分隔符有關。我想找到一種方法來保存結束分隔符。 – 2012-01-30 20:00:56