Netbeans Java:用户输入的文件在特定文件夹中输入的文件名是否存在

时间:2016-01-19 16:44:26

标签: java netbeans

我想在我的基础上编辑此代码请帮助我。用户输入文件名然后在特定文件夹中搜索是否存在..

import java.io.*;
import java.util.*;
class FindFile 
{
    public void findFile(String name,File file)
    {
        File[] list = file.listFiles();
        if(list!=null)
        for (File fil : list)
        {
            if (fil.isDirectory())
            {
                findFile(name,fil);
            }
            else if (name.equalsIgnoreCase(fil.getName()))
            {
                System.out.println(fil.getParentFile());
            }
        }
    }
    public static void main(String[] args) 
    {
        FindFile ff = new FindFile();
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter the file to be searched.. " );
        String name = scan.next();
        System.out.println("Enter the directory where to search ");
        String directory = scan.next();
        ff.findFile(name,new File(directory));
    }
}

请协助解决。

1 个答案:

答案 0 :(得分:0)

您的问题不明确。
使用您的代码,您可以在特定文件夹中以及子文件夹

中获得所有文件
public static void main(String[] args) {
    FindFile ff = new FindFile();
    String name = "notepad.exe";
    String directory ="C:\\Windows\\";

    ff.findFile(name,new File(directory));

    System.out.println("---------------");
}

输出:

  

C:\的Windows \ Notepad.exe的
  C:\ WINDOWS \ SYSTEM32 \ NOTEPAD.EXE
  C:\ WINDOWS \ Syswow64资料\ NOTEPAD.EXE
  C:\ WINDOWS \ winsxs文件\ Amd64_microsoft窗口 - notepadwin_31bf3856ad364e35_6.1.7600.16385_none_9ebebe8614be1470 \ NOTEPAD.EXE   .-----------------------------------------------

如果您要在一个文件夹(不是更深)中搜索文件 并且您使用 NOT 区分大小写操作系统

  

OP:
  用户输入文件名然后在特定文件夹中搜索,如果存在或   不..

public static void main(String[] args) {
    String filename = "notepad.exe";
    String path ="C:\\Windows\\";
    File f = new File(path+"\\"+filename);
    if(f.exists() && f.isFile()) { 
      System.out.println(path+file+" : found");
    }  

    System.out.println("---------------");        
}

输出:

  

C:\ Windows \ notepad.exe:找到了   .---------------

如果您想在一个文件夹中搜索区分大小写的文件名
将findFile()代码更改为

public void findFile(String name,File file)
  {
       File[] list = file.listFiles();
       if(list!=null) {
        for (File fil : list)
        {
            if (name.equalsIgnoreCase(fil.getName()))
            {
                System.out.println(fil.getParentFile()+"\\"+name);
            }
        }
       }
  }

<强>更新

将它放在您的主要内容中,并将搜索字词替换为您要查找的内容。

public static void main(String[] args) {
    String filename = "notepad.exe";
    String path ="C:\\Windows";
    File f = new File(path+"\\"+filename);
    if(f.exists() && f.isFile()) { 
        System.out.println(path+filename+" : found");
    } else {
        System.out.println(path+filename+" : not found");
    }
}

更新2

查看你的代码 有三个新组件

<强> jButton3
jsearchText
jLabel3

您可以使用它并将其展开到您自己的“表单对话框”。

enter image description here

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
      searchtext = jsearchText.getText();
      File f = new File(searchtext);
    if(f.exists() && f.isFile()) {
        jLabel3.setText("found : "+searchtext);
    } else {
        jLabel3.setText("not found : "+searchtext);
    }
    }

更新3

对于您的问题:使用多分机进行检查

 public static void main(String[] args) {

    String fullPath;
    String pathSeparator = "\\";
    String extSeparator = ".";
    String path = "U:\\Grafik\\Stack\\testExt\\";
    String filename = "Pic24.gif";
    String searchtext;    
    String[] elements = { ".jpg",".png",".jpeg"};           
    fullPath = path+filename;
    int dot = fullPath.lastIndexOf(extSeparator);
    searchtext = fullPath.substring(0, dot);

    for (String s: elements) {           
        File f = new File(searchtext+s);
          if(f.exists() && f.isFile()) {
           System.out.println("found : "+searchtext+s);
          } else {
           System.out.println("not found : "+searchtext+s);
          }
    }
    }
}