2012-01-30 32 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