Java 在运行时查找路径以删除文件

Java 在运行时查找路径以删除文件,java,file,path,delete-file,Java,File,Path,Delete File,代码基本上允许用户输入他们想要删除的文件的名称,该文件保存在变量“catName”中,然后执行以下代码以尝试找到文件的路径并将其删除。但是,它似乎不起作用,因为它不会以这种方式删除文件。但是,如果我输入整个路径,Is不会删除该文件 File file = new File(catName + ".txt"); String path = file.getCanonicalPath(); File filePath = new File(path); filePath.delete(); 根据

代码基本上允许用户输入他们想要删除的文件的名称,该文件保存在变量“catName”中,然后执行以下代码以尝试找到文件的路径并将其删除。但是,它似乎不起作用,因为它不会以这种方式删除文件。但是,如果我输入整个路径,Is不会删除该文件

File file = new File(catName + ".txt");
String path = file.getCanonicalPath();
File filePath = new File(path);
filePath.delete(); 

根据要删除的文件及其存储位置,您可能希望Java神奇地找到该文件

String catName = 'test'
File file = new File(catName + '.txt');
如果程序在C:\TestProg\中运行,则
文件
对象指向位置C:\TestProg\test.txt中的文件。由于文件对象更像是一个助手,因此它在指向不存在的文件时没有问题(
file
可用于创建新文件)

如果试图删除位于特定位置的文件,则需要在文件路径前面加上文件夹名,无论是按照规范还是相对于执行位置

String catName = 'test'
File file = new File('myfiles\\'+ catName +'.txt');
现在
文件
正在C:\TestProg\myfiles\test.txt中查找


如果您想在任何地方找到该文件,则需要一种递归搜索算法,该算法将遍历文件系统。

根据您要删除的文件及其存储位置,您可能希望Java神奇地找到该文件

String catName = 'test'
File file = new File(catName + '.txt');
如果程序在C:\TestProg\中运行,则
文件
对象指向位置C:\TestProg\test.txt中的文件。由于文件对象更像是一个助手,因此它在指向不存在的文件时没有问题(
file
可用于创建新文件)

如果试图删除位于特定位置的文件,则需要在文件路径前面加上文件夹名,无论是按照规范还是相对于执行位置

String catName = 'test'
File file = new File('myfiles\\'+ catName +'.txt');
现在
文件
正在C:\TestProg\myfiles\test.txt中查找


如果您想在任何地方找到该文件,则需要一个递归搜索算法,该算法将遍历文件系统。

您提供的代码可以压缩为:

boolean success = new File(catName + ".txt").delete();
如果删除成功,
success
变量将为true。如果您没有提供完整的绝对路径(例如
C:\Temp\test
用于
C:\Temp\test.txt
文件),您的程序将假定该路径相对于其当前工作目录-通常是从其启动的目录


您应该提供绝对路径或相对于当前目录的路径。您的程序不会尝试在其他任何地方查找要删除的文件。

您提供的代码可以压缩为:

boolean success = new File(catName + ".txt").delete();
如果删除成功,
success
变量将为true。如果您没有提供完整的绝对路径(例如
C:\Temp\test
用于
C:\Temp\test.txt
文件),您的程序将假定该路径相对于其当前工作目录-通常是从其启动的目录


您应该提供绝对路径或相对于当前目录的路径。您的程序将不会在其他任何地方尝试查找要删除的文件。

如果您正在删除程序正在执行的同一目录中的文件,则无需指定路径,但如果它不在程序正在运行的同一目录中,并且您希望程序知道您的文件在哪个目录中,那是不会发生的

关于上面的代码:下面的示例都做同样的事情。假设您的路径是/home/kim/files,您就是在那里执行程序的

// deletes /home/kim/files/somefile.txt
boolean result = new File("somefile.txt").delete();

// deletes /home/kim/files/somefile.txt
File f = new File("somefile.txt");
boolean result = new File(f.getCanonicalPath()).delete();

// deletes /home/kim/files/somefile.txt
String execPath = System.getProperty("user.dir");
File f = new File(execPath+"/somefile.txt");
f.delete();

换句话说,您需要指定可删除文件所在的路径。如果它们位于不同且不断变化的位置,那么您必须在文件系统中搜索该文件,如果它是一个大文件系统,这可能需要很长时间。关于如何实现这一点。

如果要删除程序正在执行的同一目录中的文件,则无需指定路径,但如果它不在程序正在运行的同一目录中,并且希望程序知道文件在哪个目录中,则不会发生这种情况

关于上面的代码:下面的示例都做同样的事情。假设您的路径是/home/kim/files,您就是在那里执行程序的

// deletes /home/kim/files/somefile.txt
boolean result = new File("somefile.txt").delete();

// deletes /home/kim/files/somefile.txt
File f = new File("somefile.txt");
boolean result = new File(f.getCanonicalPath()).delete();

// deletes /home/kim/files/somefile.txt
String execPath = System.getProperty("user.dir");
File f = new File(execPath+"/somefile.txt");
f.delete();
换句话说,您需要指定可删除文件所在的路径。如果它们位于不同且不断变化的位置,那么您必须在文件系统中搜索该文件,如果它是一个大文件系统,这可能需要很长时间。关于如何实施这一点