我想在用户选择的目录中创建一个文件,并通过用户输入命名 我尝试了 FolderBrowserDialog ,但它没有提示我提供文件名:
FolderBrowserDialog fbd = new FolderBrowserDialog();
DialogResult result = fbd.ShowDialog();
string path = fbd.SelectedPath;
//string FileName; then concatenate it with the path to create a new file
我该怎么做?
答案 0 :(得分:1)
您想在文件夹中创建新文件,因此您应该:
然后你将这2个信息连接起来以获得你的完整文件名。
或者您可以使用SaveFileDialog并在用户选择文件时检查文件是否已存在(使用File.Exists ...)。有一个属性可以在文件不存在时显示警报,但在另一侧则不显示。 因此,当您获得DialogResult时,请使用File.Exists,您可以提醒用户。
此解决方案的示例:
在此示例中(我希望没有错误,现在无法测试): - 我使用SaveButton_Click单击方法在名为SaveButton的按钮上打开saveFileDialog - 我的表单上有一个SaveFileDialog组件,名为saveFileDialog1。在此组件上,事件FileOK与我的saveFileDialog1_FileOk方法
相关联private void SaveButton_Click(object sender, EventArgs e)
{
// Set your default directory
saveFileDialog1.InitialDirectory = @"C:\";
// Set the title of your dialog
saveFileDialog1.Title = "Save file";
// Do not display an alert when the user uses a non existing file
saveFileDialog1.CheckFileExists = false;
// Default extension, in this sample txt.
saveFileDialog1.DefaultExt = "txt";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
// DO WHAT YOU WANT WHEN THE FILE AS BEEN CHOSEN
}
}
// This method handles the FileOK event. It checks if the file already exists
private void saveFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e)
{
if (File.Exists(saveFileDialog1.FileName))
{
// The file already exists, the user must select an other file
MessageBox.Show("Please select a new file, not an existing one");
e.Cancel = true;
}
}