在使用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下测试得到同样的结果。解决的办法就比较简单了,判断扩展名是否正确然后修正字符串。