2011-10-03 58 views
3

保证只有在同一个逻辑驱动器上时,Directory.Move才会重命名并且不会复制/删除?Windows - C# - Directory.Move

+0

我不会依赖那个。那里不仅有NTFS,如果你在这个假设下编写代码,它可能随时在其他机器或磁盘上崩溃,具体取决于你无法控制的细节。 –

+0

如果应用程序仅在NTFS上运行,您会依赖它吗? – user441660

+0

不,我不会,但下面它似乎像大卫有另一个想法/知识 –

回答

3

实际上,如果您尝试将目录移动到其他卷,则Directory.Move会失败。如果你想执行这样的动作,你必须自己复制/删除。我认为你可以放心地认为Directory.Move只会在没有复制文件的情况下执行操作。

+0

http://stackoverflow.com/questions/7343880/detecting-if-file-move-will-require-copy-delete-or-just- alter-location-in-th – user441660

+0

感谢David,但你确定吗?它有点与上面的链接矛盾?!!或者我错过了什么? – user441660

+0

该链接似乎用于讨论文件。你的问题涉及目录。 Directory.Move文档明确指出,交叉卷移动会失败。 –

1

Directory.Move是一个原子操作,如果这就是你所得到的。它不是作为2个操作。至少在NTFS上。

+0

感谢乔治,但我更感兴趣需要多少时间。如果它瞬间,我不会担心其他进程或线程试图从错误的位置读取或写入。 – user441660