gpt4 book ai didi

C#重命名目录,如果目录已存在则复制所有内容

转载 作者:行者123 更新时间:2023-11-30 22:27:56 25 4
gpt4 key购买 nike

假设我有目录 1 和目录 2,每个目录中都可以有文件或子目录。到目前为止,如果我想将“目录 2”重命名为“目录 3”,我可以运行:

Directory.Move("path\Directory 2", "path\Directory 3");

这工作正常 - 重命名目录,该目录中的所有子目录和文件都可以使用新名称正常工作,没有副本需要处理。

但是,如果我尝试这样做:

Directory.Move("path\Directory 2", "path\Directory 1");

我得到一个错误,因为目录 1 已经存在。在这种情况下,如果目录 2 不能重命名为目录 1,则目录 2 中的所有内容(文件和子目录)都应该移到目录 1 中。最简单的方法是什么?我是否应该有一个 if 文件存在、一个用于移动所有子目录的 foreach 和一个用于移动所有文件的 foreach?有没有更简单的方法来重载 .Move 函数来移动文件而不管是否存在错误?

最佳答案

不,因为 MOVE 在文件系统级别工作,有效地重命名文件夹,或将文件夹“指针”移动到另一个地方。前者是父目录相同的情况,后者是父目录不同的情况。

因此,在回答您的直接问题时,您必须 foreach 每个子目录,以防目标存在并且其中有内容。如果没有,您可以随时删除它并继续移动。

看这里:Directory.Move doesn't work (file already exist)

关于C#重命名目录,如果目录已存在则复制所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11054913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com