MAC OSX和Linux with Java目录中的文件和目录列表

时间:2014-09-26 10:41:22

标签: java linux macos list file

大家好我有这个代码:

for (i = 0; i < listOfFiles.length; i++) {

                  if (listOfFiles[i].isFile()) {
                      if(!listOfFiles[i].isHidden()) {
                           files = listOfFiles[i].getName();
                           List=List+files+"?:";
                      }                                              
                  }
                  else if(listOfFiles[i].isDirectory()) {
                        File Test = new File(listOfFiles[i]+"\\");
                        File [] Rec= Test.listFiles();
                        if(Rec!=null) 
                            if(!listOfFiles[i].isHidden()) {
                                files=listOfFiles[i].getName();
                                List=List+files+"*:";
                            }
                        }
          }

这个代码在windows中返回真实目录和文件夹中的所有文件&#39;但在Mac和Linux上我只看到文件.. 为什么呢?

1 个答案:

答案 0 :(得分:3)

您需要将"\\"替换为File.separator

File Test = new File(listOfFiles[i]+File.separator);

然后,这将以跨平台的方式运行:它将在Windows上使用\,但在Mac和Linux上使用/

需要注意的一点是:File.pathSeparator还有;,这对你正在做的事情有一个诱人的名字,但这不是正确的事情。它用于分隔路径列表,在Windows上为:,在Mac和Linux上为Test

顺便说一下,让实例变量以大写字母开头(如上面的{{1}})真的不是一个好主意。类名应该大写,但不应该是方法名或字段名。