2011-12-29 33 views
0

我想在使用c#时重命名大文件。 如果我有几个大文件,如果我使用.IO.move功能 我的文件将被复制与正确的名称和旧的将被销毁。 这将需要非常长的时间与大文件重命名大文件

我找不到一个好的解决方案。 任何人的想法适合大文件?

+1

如果你从一个卷移动到另一个卷,它是一个副本+删除,这是不可避免的。 – Joe 2011-12-29 21:00:45

回答

6

无论您选择哪种解决方案 - 如果您在不同的逻辑/物理磁盘之间移动文件 - 您无法对其执行任何操作。移动数据需要一些时间。

+0

也许我有点不清楚,我想重命名一个文件,但是我不想用这个文件做很多事情,比如使用.io.move(oldname,newname)方法 – ComputerIntelligentAgent 2011-12-29 21:01:48

+0

,因为这个方法将移动和删除东西,在这种情况下有几个千兆字节处理,不是很快 – ComputerIntelligentAgent 2011-12-29 21:04:03

+0

@ComputerIntelligentAgent:只要您在不同的磁盘之间移动文件 - 读取和写入所有文件的字节总是需要一些时间 – zerkms 2011-12-29 21:17:21

1

你可以create a new hardlink,然后删除原来的。这只会影响文件系统元数据,不会复制文件。

2

你测试了你的假设吗?我做了,我发现如果您使用System.IO.File.Move,并且目标位置与物理物理逻辑磁盘相同,则该文件只是重命名。这并不需要很长时间。

+0

没有物理但逻辑 – zerkms 2011-12-29 21:16:32

+0

@zerkms更正,谢谢。 – phoog 2011-12-29 21:21:26