C#如何获取文件放入文件夹的日期?
问题描述:
假设,在星期天file.txt
文件被创建,保存在文件夹folder1
。C#如何获取文件放入文件夹的日期?
周一,有人将file.txt
复制或移动到文件夹folder2
。
周二,对于文件Folder2/file.txt
,我想要得到的日期在文件来到folder2
(即日期星期一)
UPDATE: FileInfo.LastAccessTime
道具,从文件夹中移动文件时,不会受到影响另一个,但只有当复制粘贴文件。
答
可以使用FileSystemInfo.LastAccessTime
物业
参考MSDN链接https://msdn.microsoft.com/en-us/library/system.io.filesysteminfo.lastaccesstime(v=vs.110).aspx
答
您可以使用File.SetCreationTime
设置复制时间。
File.Move(sourceFile, destinationFile);
File.SetCreationTime(destinationFile, DateTime.Now);
更新:
由于问题被更新知道(只)日当文件被手动复制,我们只需要知道该文件是Created
或LastAccessed
。你可以做到这一点。
var f = new FileInfo("destinationfile");
DateTime lastAccess = f.LastAccessTime
string datoftheweek = lastAccess.ToString("ddd");
答
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
将更改CreationTime
和LastAccessTime
,但MoveTo
不会更改三个属性中的任何一个。
当文件被复制到目标文件夹时,我们可以使用CreationTime
来检测复制的时间。 我不知道检测文件被移动的时间,有时可能会使用文件夹的LastAccessTime
。
如果可能,请使用FileSystemWatcher
来监视特殊目录中的更改,然后保存更改文件的时间。
它只适用于复制粘贴文件,不适用于移动文件。 – Refael
您是否尝试过'LastWriteTime'属性? – Thiru
是的,它没有更新。 – Refael