Java 按用户输入文件名搜索特定文件夹中的文件是否存在?

Java 按用户输入文件名搜索特定文件夹中的文件是否存在?,java,netbeans,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 (Fi

我试图建立一个程序,允许用户输入任何名称,它将在特定的搜索定义的文件夹。若文件夹中存在命名文件,则显示文件存在,否则不存在

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));
    }
}

你的问题不清楚。
使用您的代码,您可以从特定的文件夹以及子文件夹中获得所有文件


输出:

C:\Windows\notepad.exe
C:\Windows\System32\notepad.exe
C:\Windows\SysWOW64\notepad.exe
C:\Windows\winsxs\amd64\U microsoft-Windows-notepadwin\U 31bf3856ad364e35\U 6.1.7600.16385\U none\U 9ebebe8614be1470\notepad.exe -----------------------------------------------

如果要在one文件夹(非更深)中搜索文件
您使用的是区分大小写的操作系统

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

输出:

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

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


更新

把这个放在你的主目录中,用你正在寻找的内容替换搜索词

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

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

更新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);
          }
    }
    }
}

所以你想让它搜索文件夹名而不是文件名吗?不,我想在文件夹中搜索文件名事实上我没有正确回答问题…我想在特定文件夹中搜索一个.jpg文件..所以是这样的…输入文件名xyz.jpg…如果在该文件夹中找到文件,则打印文件,否则找不到…还有多扩展名吗可能也喜欢搜索.png.jpeg。jpg@PankajPatidar当前位置我的答案有什么问题?您将发现文件中只有
file f=new file(路径+“\\”+文件);如果(f.exists()&&f.isFile()){System.out.println(path+file);}
下面的链接包含我的项目的源代码..请检查我把代码放错了地方了吗..请把代码放在正确的地方..-------------------------------------pastebin.com/TNNKqFFZ--------------------请解决我的这个问题:(@PankajPatidar:我在paste bin上看不到任何相关代码。
public void findFile
不在那里!所以我帮不上忙!你可以提问。看看我更新的答案。把它放在你的主要部分。
String filename=“notepad.exe”字符串路径=“C:\\Windows”;文件f=新文件(路径+“\\”+文件名);if(f.exists()&&f.isFile()){System.out.println(路径+文件名+”:已找到”);}else{System.out.println(路径+文件名+”:未找到”);}
@moskito-x:此代码正在工作,但在此代码中,我们指定用于搜索notepad.exe(这里我需要用户输入的任何xyz文件名以及它在该位置搜索的文件名)
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");
    }
}
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);
    }
    }
 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);
          }
    }
    }
}