次のコードで何がうまくいかず、誰かが私を助けてくれるのだろうかと思っていました。 I`mがやろうとしてどのようなことです:Java:ファイルに応じたスレッド
- は、それぞれのタスクを予備成形そのフォルダ
- に含まれる各.TXTファイルのためのスレッドを作成し、それ
- にいくつか.TXT、ファイルとフォルダの作成しますスレッド(この場合は数秒待つだけです)
- その後、タスクが実行された後、個々のスレッドが依存するファイルを削除します。
私の問題は、コードを実行するたびに、すべてのことがうまく動作し、タスクを実行した後にすべてのファイルを削除することです。その結果、1つの.txtファイルのみが削除され、残りのファイルはそのフォルダに残ります。 :/
私は間違っていますか?
助けが本当に素晴らしいです。前もって感謝します。
ジュリアン:D
public abstract class Threads {
static Formatter x;
public static void main(String[] args) throws IOException {
//create folder with 10 .txt-files
File theFolder = new File("C:\\Users\\Gamer\\Desktop\\TheFolder\\");
theFolder.mkdir();
for(int files = 0; files <= 10; files++) {
x = new Formatter("C:\\Users\\Gamer\\Desktop\\TheFolder\\"+files+".txt");
}
System.out.println("Created the folder and files");
//Close the formatter
x.close();
//Start a thread for each file in that folder
System.out.println(Files.list(Paths.get("C:\\Users\\Gamer\\Desktop\\TheFolder\\")).count());
Thread[] threads = new Thread[(int) Files.list(Paths.get("C:\\Users\\Gamer\\Desktop\\TheFolder\\")).count()];
for(int i = 0; i < threads.length; i++) {
int del = i;
threads[i] = new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(2000);
//after timeout of ones thread, terminate file
File theFile = new File("C:\\Users\\Gamer\\Desktop\\TheFolder\\"+del+".txt");
theFile.delete();
System.out.println("deleted file: "+del);
} catch (InterruptedException e) {e.printStackTrace();}
}
});
threads[i].start(); System.out.println("Started thread no. "+i);}
System.out.println("end");
}
}
"C:\\ユーザー\\ゲーマー\\デスクトップ\\ TheFolder \\ 0.txt" と呼ばれています。これを試してみてください... [など]?あなたはファイルの名前を動的に読むことができます。 –
エラーが生じますか?あなたはそれを踏み出そうとしましたか? –
スレッドがデーモンかどうかチェックしましたか? –