基于当前用户的Java目标目录
我在这件事上已经坚持了至少一个月了
我拥有的是一个指定目录的代码,然后检查目录是否为空。如果不是,它将删除其中的所有文件并离开目录文件夹。我用它来清理临时文件和回收站之类的东西
我这样做的方式是,我在一个私有方法中声明了一个名为“SRC_FOLDER”的变量,该变量的值为我想要清理的目录。然后在一个公共方法中,我编写了其余的代码
以下是完整的代码:
import java.io.File;
import java.io.IOException;
public class test {
private static final
String SRC_FOLDER = "C:\Users\Denisowator\AppData\Local\Temp";
public static void main(String[] args) {
File directory = new File(SRC_FOLDER);
//Check if directory exists
if(!directory.exists()) {
System.out.println("Directory does not exist.");
System.out.println("Skipping directory.");
System.exit(0);
}
else {
try {
delete(directory);
}
catch(IOException e){
e.printStackTrace();
System.exit(0);
}
}
System.out.println("Cleaned directory" + SRC_FOLDER + ".");
}
public static void delete(File file)
throws IOException{
if(file.isDirectory()){
//If directory is empty
if(file.list().length==0){
System.out.println("Directory is empty")
}
}
else {
//If file exists, then delete it
file.delete();
System.out.println("File is deleted : " + file.getAbsolutePath());
}
}
}
如您所见,该变量用作文件的值,该文件本质上就是我要清理的文件夹,然后它检查文件的长度(其中的文件量),如果长度大于零,则删除文件
这一切都很好,但我有一个问题,就是根据用户执行代码的内容指定相同的目录
假设我把这个程序给了某人,他们的名字是“史蒂夫”或类似的东西。该代码将无法工作,因为它正在用户文件夹中查找用户“Denisowator”。那么,如何根据用户的用户名更改值呢
我研究过“user.home”和“user.dir”之类的东西,但我不知道如何将其实现为变量的值
# 1 楼答案
通过将“user.home”的值与静态子路径连接起来来创建变量:
还可以通过环境变量创建变量:
但是,后者只能在windows上获得有效文件夹