我正在使用 SaveFileDialog.SaveFile
。如何将其设置为默认(操作系统)的驱动器字母,并仅限显示扩展名为.BIN
的选项?
我尝试阅读MSDN文档,但我对此非常陌生,而且说实话有时我觉得它们不太清楚。
我正在使用 SaveFileDialog.SaveFile
。如何将其设置为默认(操作系统)的驱动器字母,并仅限显示扩展名为.BIN
的选项?
我尝试阅读MSDN文档,但我对此非常陌生,而且说实话有时我觉得它们不太清楚。
SaveFileDialog
控件实际上不会进行任何保存操作,它只是为你提供了一个方便的界面来显示Windows默认的文件保存对话框。
将属性InitialDirectory
设置为您希望该控件显示的驱动器,考虑到其他可能具有不同布局的计算机。默认情况下,Windows将保存上次使用的目录并再次呈现。
这是在控件之外处理的。您需要检查对话框的结果,然后自己进行保存(例如编写文本或二进制文件)。
以下是一个快速示例(还有其他可行的方法)。savefile
是一个类型为SaveFileDialog
的控件。
SaveFileDialog savefile = new SaveFileDialog();
// set a default file name
savefile.FileName = "unknown.txt";
// set filters - this can be done in properties as well
savefile.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
if (savefile.ShowDialog() == DialogResult.OK)
{
using (StreamWriter sw = new StreamWriter(savefile.FileName))
sw.WriteLine ("Hello World!");
}
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU
下找到按文件扩展名拆分的MRU(注意它不是明文)。 - Mario使用Environment.GetSystemVariable("%SystemDrive%")可以获取操作系统所在的驱动器,你可以设置过滤器来保存对话框 获取C#保存对话框的文件路径
var saveFileDialog = new Microsoft.Win32.SaveFileDialog()
{
DefaultExt = "*.xml",
Filter = "BIN Files (*.bin)|*.bin",
InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
};
var result = saveFileDialog.ShowDialog();
if (result != null && result == true)
{
// Save the file here
}