gpt4 book ai didi

java - 通过用户输入的文件名搜索特定文件夹中的文件是否存在?

转载 作者:太空宇宙 更新时间:2023-11-04 13:01:38 25 4
gpt4 key购买 nike

我正在尝试构建一个程序,允许用户输入任何名称,它将在特定定义的文件夹中搜索。如果文件夹中存在指定文件,则显示文件存在,否则不存在。

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

最佳答案

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

<小时/>
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-windows-notepadwin_31bf3856ad364e35_6.1.7600.16385_none_9ebebe8614be1470\notepad.exe .-----------------------------------------------

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

OP :
User enter file name then it Search in Specific folder if Exist Or Not..

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 : found
.---------------

如果您想在一个文件夹中搜索区分大小写的文件名
将 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);
}
}
}
}

关于java - 通过用户输入的文件名搜索特定文件夹中的文件是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34882293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com