当前位置: 代码迷 >> Eclipse >> 就一段几行的小程序,折腾小弟我好几天了,为什么就不能mkdirs呢?各位帮忙看看
  详细解决方案

就一段几行的小程序,折腾小弟我好几天了,为什么就不能mkdirs呢?各位帮忙看看

热度:89   发布时间:2016-04-23 14:24:21.0
就一段几行的小程序,折腾我好几天了,为什么就不能mkdirs呢?各位帮忙看看!
小弟初学Java,打算写一个递归访问目录的程序,访问目录下所有文件,并按相同的结构转存至新目录,但是总是不能mkdirs成功,请高人指点一二,先谢过了:

我从eclipse拷过来,似乎格式全错了。。。

import   java.io.*;

public   class   RecurDirVisit   {

private   static   void   usage()   {
System.err
.println( "Usage:RecurDirVisit   path1   path2\n "
+   "dosomething   for   all   files   in   path1   and   write   to   path2\n "
+   "Usage:RecurDirVisit   path\n "
+   "dosomething   for   all   files   in   path   and   save   to   the   same   file ");
System.exit(1);
}

private   static   void   dosomething()   {
//   do   nothing
}

private   static   void   recurV(String   dsour,   String   ddest)   {
File   fsour   =   new   File(dsour),   fdest   =   new   File(ddest);
dsour   =   fsour.getAbsolutePath();
ddest   =   fdest.getAbsolutePath();
if   (fsour.isDirectory())   {
File[]   fList   =   fsour.listFiles();
for   (int   i   =   0;   i   <   fList.length;   i++)   {
recurV(fList[i].getPath(),   ddest   +   '\\ '   +   fList[i].getName());
}
}   else   {
if   (!fdest.getParentFile().exists())
if   (fdest.mkdirs()   ==   false)   {//在此mkdirs的结果是false,why???
System.exit(1);
System.out.println(fdest.getParent());
}

try   {
BufferedReader   in   =   new   BufferedReader(new   FileReader(fsour));
PrintWriter   out   =   new   PrintWriter(new   BufferedWriter(
new   FileWriter(fdest)));

String   s1;
while   ((s1   =   in.readLine())   !=   null)   {
System.out.println(s1);
dosomething();//   do   something   for   source   file
out.println(s1);
}

out.close();
}   catch   (IOException   e)   {
System.err.println( "IOException! ");
}
}
}

public   static   void   main(String[]   args)   {
//   TODO   Auto-generated   method   stub
if   (args.length   !=   2)
usage();
recurV(args[0],   args[1]);

}
}


------解决方案--------------------
你好好排排版面,这么乱!
------解决方案--------------------
if (fdest.mkdirs() == false)这行逻辑有问题吧.如果fdest.mkdirs() == false这个表达式为真,也就是说fdest.mkdirs()是== false 则System.exit(1);而你现在说它返回false也就是说fdest.mkdirs()这个函数返回true,既然有目录了当然它就不会再建了.
------解决方案--------------------
fdest的爹都不存在,怎么能创建fdest呢...