2016-03-16 64 views
2

假設,在星期天file.txt文件被創建,保存在文件夾folder1C#如何獲取文件放入文件夾的日期?

週一,有人將file.txt複製或移動到文件夾folder2

週二,對於文件Folder2/file.txt,我想要得到的日期在文件來到folder2(即日期星期一)

UPDATE: FileInfo.LastAccessTime道具,從文件夾中移動文件時,不會受到影響另一個,但只有當複製粘貼文件。

回答

2

您可以使用File.SetCreationTime設置複製時間。

File.Move(sourceFile, destinationFile); 
File.SetCreationTime(destinationFile, DateTime.Now); 

更新:

由於問題被更新知道(只)日當文件被手動複製,我們只需要知道該文件是CreatedLastAccessed。你可以做到這一點。

var f = new FileInfo("destinationfile"); 
DateTime lastAccess = f.LastAccessTime 
string datoftheweek = lastAccess.ToString("ddd"); 
+0

也許我沒有正確解釋自己,我再次編輯了這個問題。 我不會將文件自己轉發到folder2,有人移動。我只需要得到轉移日期。 – Refael

+0

仍然使用此代碼,您可以確定何時(日/日)複製發生的地方,對吧? –

+0

文件是通過手工傳遞,而不是通過機器傳遞。 我的代碼只在文件已經在文件夾folder2中運行 – Refael

0
Action  CreationTime  LastWriteTime  LastAccessTime   FullName 
     2016/2/17 23:32:09 2016/2/17 23:43:06 2016/2/17 23:43:06   D:\Temp\tmp 
CopyTo 2016/3/16 17:57:00 2016/2/17 23:43:06 2016/3/16 17:57:00 D:\Temp\Test\tmp1 
MoveTo 2016/2/17 23:32:09 2016/2/17 23:43:06 2016/2/17 23:43:06 D:\Temp\Test\tmp2 

我用FileInfo對文件進行測試。 CopyTo將更改CreationTimeLastAccessTime,但MoveTo不會更改三個屬性中的任何一個。

當文件被複制到目標文件夾時,我們可以使用CreationTime來檢測複製的時間。 我不知道檢測文件被移動的時間,有時可能會使用文件夾的LastAccessTime

如果可能,請使用FileSystemWatcher來監視特殊目錄中的更改,然後保存更改文件的時間。

相關問題