C#如何获取文件放入文件夹的日期?

时间:2016-03-16 08:39:50

标签: c#

假设在星期日file.txt文件已创建,保存在文件夹folder1中。

星期一,有人将file.txt复制或移动到文件夹folder2

星期二,对于文件Folder2/file.txt,我想知道文件到达folder2的日期(即星期一)

更新 将文件从文件夹移动到另一个文件时,FileInfo.LastAccessTime prop不受影响,但仅限于复制粘贴文件时。

3 个答案:

答案 0 :(得分:2)

您可以使用FileSystemInfo.LastAccessTime属性

请参阅msdn链接https://msdn.microsoft.com/en-us/library/system.io.filesysteminfo.lastaccesstime(v=vs.110).aspx

答案 1 :(得分: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");

答案 2 :(得分: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监视特殊目录中的更改,然后保存更改文件的时间。