例如:f:testtof:TEST我试过这段代码:vardirectory=newDirectoryInfo("f:\test");directory.MoveTo("f:\TEST");我得到一个IOException-源和目标路径必须不同。我也试过Directory.Move()结果相同。你是怎么做到的?是否必须单独创建一个临时目录,将包含的文件从原始目录移动到临时目录,然后删除原始目录,重命名临时目录?好吧,您不需要创建单独的目录并移动所有内容。只需将文件夹重命名为不同的名称,然后恢复为您想要的名称:vardir=newDirectoryInfo(@"F:test");dir.MoveTo(@"F:test2");目录。MoveTo(@"F:TEST");为什么它不重命名目录temp,然后再次将其重命名为TEST?即使.NET方法DirectoryInfo.MoveTo在名称相同时抛出异常,您也可以像这样调用WindowsAPIMoveFile函数来设置目录名称的大小:boolsuccess=MoveFile(dirInfo.FullName,dirInfo.FullName);使用此外部声明:[DllImport("kernel32",SetLastError=true)]privatestaticexternboolMoveFile(stringlpExistingFileName,stringlpNewFileName);当名称不同时,它对我有用。当名称已经完全符合指定时,我还没有尝试过这样称呼它。这样做的好处是该目录永远不会以其原始名称消失。虽然它只能在Windows上运行,但它有一个缺点。在这种情况下,答案是肯定的-文件系统本身并没有将两者视为不同,因此您需要删除并添加新名称(或按照建议移动/删除/移动)具有相同名称的目录不同于所有内容共享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右方联系管理。会员删除。如需转载请注明出处:
