我正在尝试保存带有双点扩展名的文件。但是每当我这样做时,文件的扩展名都加倍(对于我来说),我选择另存为.lmk.ilu
扩展名,但是文件的最终扩展名是filename.lmk.ilu.lmk.ilu
这是代码:
public static bool BrowseForFileToSave(BrowserInfo info, IWin32Window owner, string title)
{
var dlg = new SaveFileDialog
{
OverwritePrompt = info.OverwritePrompt,
DefaultExt = info.DefaultExt,
Filter = info.Filter,
FilterIndex = info.FilterIndex,
FileName = info.FileName,
InitialDirectory =
info.UseLastFolderAsInitialDirectory && BrowserInfo.LastFolder != null
? BrowserInfo.LastFolder
: info.InitialDirectory
};
if (title != null)
dlg.Title = title;
if(info.FileNameValidationCallback != null)
dlg.FileOk += info.FileNameValidationCallback;
var result = dlg.ShowDialog(owner);
if (result == DialogResult.OK)
{
BrowserInfo.LastFolder = Path.GetDirectoryName(dlg.FileName);
info.FileName = dlg.FileName;
return true;
}
return false;
}
调试到
时一切都很好var result = dlg.ShowDialog(owner);
到目前为止,dlg.FileName为空。然后,在对话框操作完成之后,名称已经具有四个扩展名,而不是两个。
考虑到单点扩展名可以正常工作并且SupportMultiDottedExtensions = true
没有帮助,当我选择两个扩展名时,如何使它只有两个扩展名?
编辑:
Save File Dialog , restrict name
我实现了File.Ok名称验证,但是一旦按下“保存”按钮,它就会起作用。
如何在从“另存为类型”下拉菜单中选择一个选项时(即在关闭对话框之前)验证扩展名?