我正在创建一个应用程序,用于将文件从源目录备份到目标目录。我将来自源文件夹和目标文件夹的文件信息存储在单独的列表中,然后根据列表大小,修改日期等对列表进行比较,以查看需要复制的文件。
无论如何,关键是我最终得到了需要复制的文件列表,我想知道每个文件花了多少时间,因此我尝试了以下技术:
Thechnique 3:常规File.Copy(“source ....”,“Destination”)
前两种技术很棒,因为我可以看到进步。问题是,当我使用这些技术复制一些文件时,新文件有时会有不同的日期。我希望这两个文件具有相同的修改日期和相同的创建日期。此外,如果由于某种原因我的程序崩溃,正在复制的文件将被破坏,因为我已经尝试复制一个大文件(一个大约需要一分钟的文件被复制到Windows中)如果我退出我的程序同时该文件正在被复制正在复制的文件有时具有相同的属性和相同的大小,因此我想确保在程序崩溃的情况下我没有损坏的文件。
也许我应该使用以太技术1或2然后在最后复制源文件中的属性并将它们分配给目标文件。我不知道怎么做。
答案 0 :(得分:1)
FileInfo的成员CreationTime和LastWriteTime是可设置的 - 所以你可以选择适合自己喜欢的技巧,如果有帮助就设置日期。
答案 1 :(得分:1)
您是否考虑过编写一个调用robocopy的shell脚本?每当我必须运行这样的备份任务时,我只是编写一个脚本 - robocopy已经为我做了繁重的工作,所以通常不需要创建一个定制的应用程序。
答案 2 :(得分:0)
我有一个解决方案,但很长:
我知道我可以从源中复制文件,然后在目标中命名文件,例如“fileHasNotBeenCopiedYet”,其属性为hidden,然后当我的程序完成复制文件时,将名称更改为源名称并复制属性然后我知道如果存在具有该名称的文件(“fileHasNotBeenCopiedYet”),则意味着该文件已损坏。