2013-02-15 19 views
6

次のコードのファイルの日付が変更されないのはなぜですか? CでなぜこのファイルのsetLastModified(time)は機能しませんか?

fLocal.locationは=既存のファイル:これらのチェックに従って、以前から私のコメントから

Changed: false 
Fri Feb 15 23:02:51 CET 2013 
Fri Feb 15 22:49:34 CET 2013 
+3

コードにファイルへの書き込みアクセス権がありますか?ファイルは開いていますか? – JoshDM

+4

これを実行しているときに、他のアプリケーションでファイルを現在読んでいますか?これらは、ファイルの時刻を変更できない可能性のあるすべての項目です。 1行のテキストで単純なプレーンテキストファイルを作成し、保存してエディタを終了します。次に、そのファイルを使用してみます。あなたが実際に有効なファイルを持っていることを確認するためにファイルオブジェクトを変更しようとする前に、ファイルオブジェクトに 'exists()'を呼び出すようにしてください。 – JoshDM

+0

これは、C:\の下で直接作業するのは特に悪い考えです。なぜなら、a)もっと最近のWindowsバージョンでは、ファイルやディレクトリに触れたり/変更したりすることはないからです。b)OSのファイルを誤って上書きしたり、ファイル)。 – Ingo

答えて

2

fLocal.date =日ロング

boolean x = new File(fLocal.location).setLastModified(Long.parseLong(fLocal.date)); 
System.out.println("Changed: " + x); 
System.out.println(new Date(new File(fLocal.location).lastModified())); 
System.out.println(new Date(Long.parseLong(fLocal.date))); 

出力に設定するには、\:

  1. コードにファイルへの書き込みアクセス権がありますか?
  2. ファイルは開いていますか?
  3. このとき、他のアプリケーションでこのファイルを現在読んでいますか?

これらは、ファイルの時刻を変更できない可能性のあるすべての項目です。

1行のテキストで単純なプレーンテキストファイルを作成し、保存してエディタを閉じます。次に、アプリケーションでそのファイルを使用してみてください。 FileObjectexists()に電話をかけて、実際に有効なファイルがあることを確認する前に時間を変更してください。

2

は私の地元にあなたのコードをテストし、それが...私は私のシステム上で非常に古いファイルの更新日時を変更...

-Seeファイルをどこか別の場所に使用されている場合... -checkの作品ファイルへのアクセス許可がある場合

import java.io.File; 
import java.io.IOException; 
import java.util.Date; 

class Test 
{ 
    private class flocalClass 
    { 

     public String date; 
     public String location="c:/Test/cascade.xyz"; 

    } 
    public static void main (String[]args) throws IOException 
    { 
     flocalClass fLocal = new Test().new flocalClass(); 
     fLocal.date = Long.toString(new Date().getTime()); 
     boolean x = new File(fLocal.location).setLastModified(Long.parseLong(fLocal.date)); 
     System.out.println("Changed: " + x); 
     System.out.println(new Date(new File(fLocal.location).lastModified())); 
     System.out.println(new Date(Long.parseLong(fLocal.date))); 
    } 
} 
関連する問題