好的,我有文件名为
ANIME~1.MKV~FNH47B97
ANIME~1.MKV它是完整的文件名。它是由用户命名的。我想把第一个重命名为动画~1.jpg,从操作系统的角度看,它们似乎是相同的文件。MoveFile和MoveFileEx都什么也不做。他们返回OK,仅此而已。
另一个奇怪的情况是,例如,
ANIME~2.MKV~FNH47B97
ANIME~3.MKV我想把第一个重命名为动画~2。And操作系统创建了和动画一样的and。and仍然什么也不做。
这取决于文件夹中具有“相同DoS8.3名称”的文件的数量。
有办法解决吗?可能需要一些额外的操作/标志吗?
发布于 2015-09-10 10:44:01
要将注释中的讨论概括为大致答案:MoveFile(Ex)对完整的文件名进行工作,尽管它可以根据其短名称找到源文件,但目标文件被视为长名称。
这意味着目标文件名不应与现有文件的任何长或短文件名发生冲突。这可能就是你的第二个测试用例失败的原因。第一个测试用例可能由于类似的原因而失败;我只对这两个文件进行了尝试,并且MoveFile可以处理它。
可以禁用DOS风格8.3短名称的生成,请参阅KB121007,但我真的不推荐它。它会引起很多问题,例如这篇文章。此外,这是一个决定,应该留给系统管理员,而不是任何应用程序。
https://stackoverflow.com/questions/32499242
复制相似问题