Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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#复制cd中文件的创建时间_C#_Copy_Cd - Fatal编程技术网

C#复制cd中文件的创建时间

C#复制cd中文件的创建时间,c#,copy,cd,C#,Copy,Cd,我正在尝试从cd复制文件,复制后还要复制文件的创建日期。 “复制”命令如下所示: Microsoft.VisualBasic.FileIO.FileSystem.CopyFile(sourcePath, destPath); 它工作正常,并将文件从cd(源)复制到桌面(目标) 我要做的下一步是从源文件中获取创建时间: DateTime creationTime = File.GetCreationTime(sourcePath); 此步骤也可以正常工作,创建时间在creationTime变量

我正在尝试从cd复制文件,复制后还要复制文件的创建日期。 “复制”命令如下所示:

Microsoft.VisualBasic.FileIO.FileSystem.CopyFile(sourcePath, destPath);
它工作正常,并将文件从cd(源)复制到桌面(目标)

我要做的下一步是从源文件中获取创建时间:

DateTime creationTime = File.GetCreationTime(sourcePath);
此步骤也可以正常工作,创建时间在creationTime变量中

最后一步是将创建时间放入目标文件:

File.SetCreationTime(destPath, creationTime);
这就是问题所在,最后一步抛出“访问被拒绝:”C:…(目标路径)

最重要的是我可以访问cd(源)中的文件,但为什么我不能更改目标中文件的创建时间? 第二,当我试图从键上的磁盘复制到桌面或从计算机中的一个文件夹复制到另一个文件夹时,它工作得非常完美。 这让我觉得问题在于,当我试图从cd复制时,我检查了另一张cd上的结果,同样的结果发生了,它无法复制创建日期。
如何解决该问题并复制创建时间

我不知道你为什么在
File.SetCreationTime
中被“拒绝访问”。如果右键单击并以管理员身份运行Visual Studio,会发生什么情况?这也将提升您的程序,并可能证明它具有访问权限

无论如何,更改创建/修改日期的另一种方法是使用:

您还可以使用
{LastWriteTime=dateTime}
更改修改的日期。见下文:

不幸的是,我这里没有一张CD可以直接测试这一点,所以如果您再次出现在第一广场,我深表歉意。

解决: 对于下一个遇到同样问题的人,问题是cd上的文件是只读文件,复制文件后,它仍然是只读文件。
要设置其创建日期,必须从复制的新文件中删除只读属性,然后再设置创建日期。

将系统时钟从CD更改为创建日期,然后复制文件。嘿嘿;)我只是开玩笑。。但是我想帮忙。您是否有足够的权限编辑位于桌面上的文件?与其使用CopyFile复制文件,不如使用file.OpenRead()从CD打开文件,使用file.create()创建目标文件,并使用Stream.CopyTo()复制源文件的字节。完成后,您可以对目标文件执行我认为可以执行的任何操作。为什么要使用Visual Basic复制该文件?是的,我有权编辑位于桌面上的文件,如果我从其他源(而不是cd)复制到desktop@NickGamesThanks中的同一文件夹,则创建副本将正常工作。感谢帮助,我尝试了这个,我发现问题不在于创建更改,而是因为文件属性,你可以看到我的答案谢谢你让我知道。现在,我们都会因为没有看到如此基本的东西而感到愚蠢;-)
private void ChangeCreationTime(string filePath, DateTime creationDate)
{
    var result = new FileInfo(filePath) {CreationTime = creationDate};
}