在winform中如何获得其中一个花哨的窗口“将文件保存为”对话框以便用户可以将字符串作为文件保存到其硬盘上的用户指定位置?
答案 0 :(得分:3)
Dim myString = "Hello world!"
Dim saveFileDialog As New SaveFileDialog()
saveFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
saveFileDialog.FilterIndex = 2
saveFileDialog.RestoreDirectory = True
If saveFileDialog.ShowDialog() = DialogResult.OK Then
If saveFileDialog.FileName <> "" Then
System.IO.File.WriteAllText(saveFileDialog.FileName, myString)
End If
End If
它没有很多东西。指定要保存的文件类型(以相当神秘的格式;查看Filter属性的文档以了解更多信息),然后显示对话框,并且a)使用{{检索要写入的流(如此处所示) 1}}方法,或检索用OpenFile
属性选择的文件名。
查看MSDN上的文档了解更多信息。
答案 1 :(得分:0)
这是我项目的一个例子。我在用户的my documents文件夹中启动SFD,因为它们保证了那里的写访问权。
SaveFileDialog sfd = new SaveFileDialog();
sfd.FileName = suggestedName + ".csv";
sfd.Title = "Choose Location For CSV";
sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
if (sfd.ShowDialog() != DialogResult.OK)
{
return;
}
string outputFileName = sfd.FileName;
答案 2 :(得分:0)
好吧,那我应该重新解释一下我的问题。在运行时我正在创建一个字符串,我想将此字符串保存为文件。我该怎么做?
Dim theStringToSave as String = "some string here"
Dim sfd As New SaveFileDialog()
sfd.Filter = "txt files (*.txt)|*.txt|(*.csv)|*.csv|All files (*.*)|*.*"
sfd.FilterIndex = 2
saveFileDialog1.RestoreDirectory = True
If saveFileDialog1.ShowDialog() = DialogResult.OK Then
File.WriteAllText(sfd.FileName, theStringToSave)
End If
答案 3 :(得分:-1)
搜索SaveFileDialog。