当前目录java和有效字符串中的文件和文件夹数组

时间:2016-01-23 16:34:46

标签: java arrays string scanning

我得到一个包含jar文件当前目录中所有文件和文件夹的数组。

下一步,从用户获取字符串输入(文件名或文件夹...), 并在数组中搜索该字符串。像array.indexOf这样的东西,如果存在,则打印文件的完整路径。

String workingDir = System.getProperty("user.dir");
System.out.println("Current working directory : " + workingDir);

System.out.println("Give Me The Name Of The File You Search In current Directory");
String specific = in.nextLine();

File f = new File(workingDir);
ArrayList<File> files = new ArrayList<File>(Arrays.asList(f.listFiles()));

System.out.println(files);

if (files.contains(specific)) {
System.out.println("File exsist");
}

我该如何进行下一步?

**解决了。谢谢

4 个答案:

答案 0 :(得分:0)

所以你的代码应该是这样的,比较字符串的名称:

 for (int i = 0; i < files.size(); i++){
   File file = files.get(i);
   if (file.getName().contains("yourFileName")){
      System.out.println("File Exists");
    } 
 }

答案 1 :(得分:0)

您正在寻找的是

if(files.get(x).getName().contains(fileString))

或完全回答:

  for(File file : files){
  if(file.getName().contains(specific)){
      // process file
      System.out.println("Full filepath is " + workingDir + "/" + specific);
  }
}

编辑:

还要检查是否从未找到它:

  boolean wasFound = false;
  for(File file : files){
  if(file.getName().contains(specific)){
      // process file
      System.out.println("Full filepath is " + workingDir + "/" + specific);
      wasFound = true;
  }
}

   if (!wasFound) {
     // File was not found, show an error
   }

答案 2 :(得分:0)

如果要打印文件的完整文件路径,该文件的名称存储在&#34;特定的&#34;那么你应该做什么。

String workingDir = System.getProperty("user.dir");
    System.out.println("Current working directory : " + workingDir);

    System.out.println("Give Me The Name Of The File You Search In current Directory");
    String specific = in.nextLine();

    File f = new File(workingDir);
    ArrayList<File> files = new ArrayList<File>(Arrays.asList(f.listFiles()));

    System.out.println(files);

    for (File file : files) {
        if (file.getName().equals(specific)) {
            System.out.println(file.getAbsolutePath());
        }
    } 

答案 3 :(得分:0)

  

首先搜索字符串

您可以使用完整路径使用输入创建文件对象,因为ArrayList files包含文件的完整路径。类似的东西:

File toCompare = new File(workingDir+System.getProperty("file.separator")+specific);

然后查看它是否存在于列表中:

if(files.contains(toCompare))
  

然后打印包含数组中字符串的完整文件路径   然后打印完整路径:

    System.out.println(toCompare);

否则说没找到:

else
    System.out.println("not found");

全部放在一起:

File toCompare = new File(workingDir+System.getProperty("file.separator")+specific);
if(files.contains(toCompare))
    System.out.println(toCompare);
else
    System.out.println("not found");