1

以下に示すように、abcという名前のC:ドライブフォルダーにdatファイルを作成しています。ファイルが毎日生成されると、ファイルが今日生成された場合、tommrowも通常どおり生成されますが、tommrowが生成されると、そのフォルダー内のスペースが限られているため、前日のファイルが削除されていることを確認してください。このチェックは、前日のファイルをそのフォルダーから削除するために毎回実行する必要があります。これを達成する方法を教えてください..

File file = new File(FilePath + getFileName()); //filepath is being passes through //ioc         //and filename through a method 


        if (!file.exists()) {
            file.createNewFile();
        }

FileOutputStream fileOutput = new FileOutputStream(
                file);

        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
                fileOutput));
4

4 に答える 4

7

なぜ使用しないのfile.delete()ですか?

File file = new File(FilePath + getFileName()); //filepath is being passes through //ioc         //and filename through a method 

if (file.exists()) {
     file.delete(); //you might want to check if delete was successfull
}
file.createNewFile();

FileOutputStream fileOutput = new FileOutputStream(file);

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fileOutput));
于 2013-08-22T06:45:05.777 に答える
2

ファイル名が時々同じ場合は、それを削除する必要はありません。コードを明日実行すると、今日作成されたファイルが上書きされます。

次のケースを検討してください

    BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\Test\test.txt"));
    bw.write("abbbb");
    bw.close();  // now this will create a test.txt in side Test folder

これを文字列の書き込みを変更して実行します

    BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\test.txt"));
    bw.write("hihi");
    bw.close(); // now you can see file only containing hihi
于 2013-08-22T06:46:38.660 に答える
1

この方法でコードを変更できます。

 if (file.exists()) {
      file.delete();
 }
 file.createNewFile();

それが機能しない場合は、許可の問題です。

于 2013-08-22T06:47:11.477 に答える
0

Java 7 を使用している場合、ファイルの作成時間を取得する標準的な方法があります。これにより、ファイルが前日に作成され、削除する必要があるかどうかを確認できます。

    Path path = Paths.get("/filepath/");
    BasicFileAttributes fileAttributes = Files.readAttributes(path, BasicFileAttributes.class);
    System.out.println("creationTime:"+ fileAttributes.creationTime());
于 2013-08-22T06:42:45.783 に答える