Microsoft.VisualBasic.FileSystem.MoveFile()对话框疑似Bug问题咨询
问题分析与解答
结论
这是Microsoft.VisualBasic.FileIO.FileSystem.MoveFile方法的已知UI Bug,并非你的使用方式有误。
具体说明
当调用MoveFile方法并传入UIOption.AllDialogs参数时,若目标路径已存在非同名文件,对话框会错误地将源文件名显示为目标已存在的文件名。这个问题属于该方法UI交互层的逻辑错误,和你的代码写法无关——你的代码示例中参数传递完全符合API要求:
var fileOri = @"D:\Temp\overwritetest_ori.txt"; var fileToOverwrite = @"D:\Temp\overwritetest\overwritetest.txt"; FileSystem.MoveFile(fileOri, fileToOverwrite, UIOption.AllDialogs, UICancelOption.DoNothing);
临时解决办法
如果需要保留UI交互同时避免错误提示,可采用两种方式:
- 手动检查目标文件是否存在,提前弹出自定义确认对话框,确认后调用不带
UIOption.AllDialogs的MoveFile方法(比如传入UIOption.OnlyErrorDialogs) - 改用
System.IO.File.Move方法,配合自定义的确认对话框实现交互逻辑,完全避开VisualBasic组件的UI Bug
内容的提问来源于stack exchange,提问作者Lemmes
相关产品推荐
相关产品推荐

