我试图从cd复制文件,复制后也复制文件的创建日期。 复制命令如下所示:
Microsoft.VisualBasic.FileIO.FileSystem.CopyFile(sourcePath, destPath);
它正常工作并将文件从cd(源)复制到桌面(目标)。
我要做的下一步是从源文件中获取创建时间:
DateTime creationTime = File.GetCreationTime(sourcePath);
此步骤也可以正常工作,创建时间在creationTime变量中。
最后一步是将创建时间放在目标文件中:
File.SetCreationTime(destPath, creationTime);
这就是问题,最后一步抛出"访问被拒绝:" C:...." (目的地路径)"。
奇怪的是我可以访问cd(源代码)中的文件,但为什么我不能更改目标文件的创建时间? 其次,当我试图从密钥上的磁盘到桌面或从计算机中的一个文件夹到另一个文件夹制作完全相同的副本时,它完美无缺。 这让我觉得问题是当我试图从cd复制时,我在另一张CD上检查了同样的结果,它无法复制创建日期。 我该如何解决它并复制创建时间?
答案 0 :(得分:1)
我不知道你为何会因yAxis: {
axisLabel: 'Values',
tickFormat: function(d){
return d3.format(',f')(Math.abs(d)); // Use Math.abs() to get the absolute value
}
}
而获得“拒绝访问”。如果右键单击并以管理员身份运行Visual Studio会发生什么?这也会提升您的计划,并可能证明它是访问权限。
无论如何,您可以使用FileInfo:
更改创建/修改日期的另一种方法File.SetCreationTime
您还可以使用private void ChangeCreationTime(string filePath, DateTime creationDate)
{
var result = new FileInfo(filePath) {CreationTime = creationDate};
}
更改修改日期。见下文:
不幸的是我没有CD就可以直接测试这个,所以如果你再次回到正方形,我会道歉。
答案 1 :(得分:0)
解决: 对于下一个遇到同样问题的人来说,问题是cd上的文件是只读文件,复制文件后它仍然是只读文件。 为了设置它的创建日期,您必须从您复制的新文件中删除只读属性,然后才能执行创建日期的设置。