关于文件操作中 创建目录的问题一个创建目录的 小程序,可是老是“创建失败”,大家帮忙看看。import java.io.File;class MKdir{ public static void main(String[] argv)
{
char yn;
byte path[]=new byte[255];
System.out.println("是否创建目录(y/n) ");
try{
yn=(char)System.in.read();
if (yn=='y'||yn=='Y')
{
System.out.println("请输入目录路径:");
System.in.read();
   System.in.read(path);
String inputPath = new String(path,"Default"); //将字符转化为字符串

File f_obj=new File(inputPath);

if( f_obj.mkdir() )
{
System.out.println(inputPath+"目录创建成功!");
}else
System.out.println(inputPath+"目录创建失败!");


}else if (yn=='n'||yn=='N')
{
System.out.println("取消了创建目录!");
}

}catch (Exception e){ e.printStackTrace(); }

}
}输出结果是:
是否创建目录(y/n) 
y
请输入目录路径:
c:\good
c:\good
目录创建失败!
Interactive Session Ended

解决方案 »

  1.   

    还有个问题:
    File file = new File("c:\good\good.doc" );和File file= new File("c:\good\good.doc");
    file.creatNewFile();有什么区别?(其中c:\good\good.doc都是新创建的)
      

  2.   

    import java.io.*;public class MakeDirect {    public static void main(String[] argv) {
            char yn;
            System.out.println("是否创建目录(y/n) ");
            try {
                yn = (char) System.in.read();
                if (yn == 'y' || yn == 'Y') {
                    System.out.println("请输入目录路径:");
                    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
                    String inputPath = in.readLine(); // 将字符转化为字符串
                    while(inputPath.equals("")) {
                        inputPath = in.readLine(); 
                    }                File f_obj = new File(inputPath);
                    if (f_obj.mkdir()) {
                        System.out.println(inputPath + "目录创建成功!");
                    } else System.out.println(inputPath + "目录创建失败!");            } else if (yn == 'n' || yn == 'N') {
                    System.out.println("取消了创建目录!");
                }        } catch (Exception e) {
                e.printStackTrace();
            }    }}
      

  3.   

    是否创建目录(y/n) 
    y
    请输入目录路径:
    c:\good
    path:c:\good
    begin make
    c:\good目录创建成功!
      

  4.   

    应该是c:\\good,不是c:\good当然不同。第一个是建立一个file的对象,第二个是创建一个实际的文件
      

  5.   

    有点不明白,
    既然在下面的循环中有 
    while(inputPath.equals("")) {
                        inputPath = in.readLine(); 
                    }为什么还要有  String inputPath = in.readLine(); // 将字符转化为字符串可是如果删了这句 提示inputPath 没有初始化。这是为什么?????????
      

  6.   

    因为while上面的那句readLine可能没有读到字符串,就需要来个while循环,直到inputPath非空假如没有当然可能没有被初始化了