在使用SaveFileDialog时发现如果在保存窗口文件名输入框中输入以点号分割的字符串时,无论怎么设置SaveFileDialog.AddExtension属性都不会增加扩展名。比如”123.456”,”rt.yui.eee”,那保存的文件扩展名变成了”.456”和”.eee”。相对于这个情况,我使用Word和记事本进行了测试,新生成的文件会自动加上扩展名变成123.456.txt和123.456.doc。 下面是测试代码:
SaveFileDialog saveRegFile = new SaveFileDialog();
saveRegFile.AddExtension = true;
//saveRegFile.InitialDirectory = Application.StartupPath;
saveRegFile.Filter = "reg files (*.reg)|*.reg|txt files (*.txt)|*.txt";
saveRegFile.FilterIndex = 0;
saveRegFile.RestoreDirectory = true;
saveRegFile.Title = "保存文件";
if (saveRegFile.ShowDialog() == DialogResult.OK)
{
string fileName = saveRegFile.FileName;
using (File.Open(fileName, FileMode.Create))
{
}
}
在VS2003和VS2005下测试得到同样的结果。解决的办法就比较简单了,判断扩展名是否正确然后修正字符串。
本文探讨了在使用SaveFileDialog组件时遇到的扩展名自动添加问题,特别是当用户输入包含点号的文件名时,组件无法正确识别并添加预设的文件扩展名。文章通过对比Word和记事本的行为,提出了一种解决方案,即判断并修正文件名中的扩展名,确保文件能够以正确的格式保存。
347

被折叠的 条评论
为什么被折叠?



