Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在使用C移动文件时获取文件的上次修改日期#_C#_File_Io - Fatal编程技术网

C# 如何在使用C移动文件时获取文件的上次修改日期#

C# 如何在使用C移动文件时获取文件的上次修改日期#,c#,file,io,C#,File,Io,我有一个实用程序,可以将(system.io.move)文件从一个文件夹移动到另一个文件夹。移动文件时,其创建日期和修改日期不会更改(复制粘贴完成后会更改)。我需要确定哪些文件是在特定日期移动的。请注意,文件已被移动。这是不可能的 有一个文件修改日期,但如果它们没有更改(即它们的字节没有更改),则不会重置日期 当然,在复制和粘贴的情况下,粘贴的文件的创建和修改日期会重置(字节更改)。原件没有日期重置。如果您不介意重新创建文件,只需创建一个函数,创建一个新文件并复制其内容即可。如果您的文件大小非常

我有一个实用程序,可以将(system.io.move)文件从一个文件夹移动到另一个文件夹。移动文件时,其创建日期和修改日期不会更改(复制粘贴完成后会更改)。我需要确定哪些文件是在特定日期移动的。请注意,文件已被移动。

这是不可能的

有一个文件修改日期,但如果它们没有更改(即它们的字节没有更改),则不会重置日期


当然,在复制和粘贴的情况下,粘贴的文件的创建和修改日期会重置(字节更改)。原件没有日期重置。

如果您不介意重新创建文件,只需创建一个函数,创建一个新文件并复制其内容即可。如果您的文件大小非常大,请使用缓冲区,但如果您的文件相当小,则可以使用缓冲区

void CopyContentOfFile(string file1, string file2)
{
    byte[] val = File.ReadAllBytes(file1);
    File.WriteAllBytes(file2, val);
}
CopyContentOfFile("test1.txt","test2.txt"); //copy test1 to test2.
您可以使用以下选项:

            //Sets the date and time the file was created.
        System.IO.File.SetCreationTime(@"F:\myFile.txt", DateTime.Parse("12/19/2010"));

        //Sets the date and time, in coordinated universal time (UTC), that the file was created.
        System.IO.File.SetCreationTimeUtc(@"F:\myFile.txt", DateTime.Now);

如前所述,无法查明哪些文件在移动后的特定时间被移动。但是,将来可以通过FileInfo类设置一个datetime属性来防止这种情况。移动文件时,必须至少具有文件的完整路径。从中创建FileInfo对象并更改相应的datetime属性。我会建议一些你可能不需要的东西,比如上次

FileInfo f1 = new FileInfo("Text.txt");
//readonly must be false to change the property.  It can be changed back if needed.
f1.IsReadOnly = false;
File.Move(f1.FullName, @"C:\test\" + f1.Name);
f1 = new FileInfo(@"C:\test\" + f1.Name);
f1.LastAccessTime = DateTime.Now;