4

File.SetCreationTime() メソッドを使用して、ファイルの作成時刻を更新しています。ローカル フォルダー内のファイルでは機能しますが、何らかの理由で共有ネットワーク フォルダーでは機能しません。同じアプリケーションを使用してファイルを作成、削除、名前変更できますが、この方法は機能しません。MSDN でメソッドの説明を読みましたが、呼び出し元が適切なアクセス許可を持っていない場合、UnauthorizedAccessException が発生すると書かれています。ただし、例外はありません。この動作の原因は何ですか? ファイルの作成時間を設定する回避策または別の方法はありますか?

関連するコード スニペットは次のとおりです。

try
{
   DateTime dt = fi.CreationTime; //fi is a FileInfo of the given file
   DateTime newdt = new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second, position);
   _log.DebugFormat("Setting the CreationTime attribute to {0} ticks...", newdt.Ticks);
   fi.CreationTime = newdt;
   File.SetCreationTime(filePath, newdt);
   _log.DebugFormat("CreationTime check: {0}", File.GetCreationTime(filePath).Ticks);
}
catch (Exception ex)
{
   _log.DebugFormat("Error details: {0}", ex.ToString());
}

デバッグ ログ出力によると、アプリケーションは新しい日時の設定を試みます。ただし、「CreationTime check:」は「古い」日時値を表示します。

4

0 に答える 0