【发布时间】:2019-05-15 14:29:18
【问题描述】:
如果newname 指向不同的驱动器,rename 实际上会复制文件(至少在Windows 10 平台上)。
有没有办法避免这种情况?我希望它在这种情况下失败。
假设我想移动 100 GB 的文件。如果可能的话,我想重命名它。如果没有 - 我想使用我自己的复制功能并向用户显示操作的进度。
【问题讨论】:
-
文件驻留在不同卷中时无法重命名,因为每个卷上的文件目录不同。这就像将西红柿从一个冰箱“重命名”到另一个冰箱,不知何故你必须先转移它。当它是一卷时,重命名只会更改索引。
-
我知道!我说的是c++重命名函数的实现!请阅读问题。
-
Is there a way to avoid this?- 在调用 rename 之前确定路径是否属于不同的驱动器,如果是,不调用 rename? -
是否有跨平台的方法来确定这一点?我认为这不是一项简单的任务。
-
是卷,不是盘符。即使是 linux,如果要将文件放在不同的卷上,无论挂载点如何,“重命名”仍然会复制+删除。
标签: c++