私は少なくとも今一月以上この問題に取り組んできました。現在のユーザーをベースにした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"のようなものを調べましたが、変数の値にどのように実装するのか分かりません。
['user.name'](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html)環境変数を使用してください。 –
私はこれを単に "Denisowator"の代わりに実装しますか? "C:\ Users \ user.name \ AppData \ Local \ Temp"になります。 – Denisowator
これを見てください:http://stackoverflow.com/questions/585534/what-is-the-best-way-to-find-the-users-home-directory-in-java – Titus