如果初始目录不存在,请创建它,但如果用户取消保存,请删除新添加的文件夹



我想使用SaveFileDialog将文本框文本保存到在特殊目录中创建的.txt文件中。

但假设我的路径不存在:我希望当对话框出现询问用户想将其.txt文件保存在哪里时,对话框会自动创建丢失的文件夹(如果它们丢失了(。但我也喜欢,如果用户取消保存,新创建的文件夹将被删除,如果它们是空的。

换句话说:SaveFileDialog对话框显示在一个初始目录中,但如果这个初始目录为空,我的代码会生成这个目录,但如果用户取消,我的程序会擦除生成的目录。

下面是我的例子:我想把我的.txt保存在Desktop\FolderExistingOrNot中,但如果文件夹FolderExistiingOrNot是空的,我想创建它。但如果用户取消,如果FolderExistigOrNot为空,我想删除它。

private void btn_SAVE_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.DefaultExt = "txt";
sfd.Filter = ".TXT (*.txt)|*.txt";
sfd.FileName = textBox1.Text;
sfd.InitialDirectory = System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\FolderExistingOrNot";
//Directory.CreateDirectory(sfd.InitialDirectory); // could use that but if the user cancel, this folder will not be destroyed
if (sfd.ShowDialog() == DialogResult.OK)
{
File.WriteAllText(sfd.FileName, textBox2.Text);
}
else // if the user cancel the saving
{
// I would like to erase the folder FolderExistingOrNot if it's empty
}
}

这可能很简单,但我还没想好怎么做。

当我测试它时,它对我有效。

SaveFileDialog sfd = new SaveFileDialog();
sfd.DefaultExt = "txt";
sfd.Filter = ".TXT (*.txt)|*.txt";
sfd.FileName = textBox1.Text;
string mypath = System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\FolderExistingOrNot";
Directory.CreateDirectory(mypath);
sfd.InitialDirectory = mypath;
//Directory.CreateDirectory(sfd.InitialDirectory); // could use that but if the user cancel, this folder will not be destroyed
if (sfd.ShowDialog() == DialogResult.OK)
{
File.WriteAllText(sfd.FileName, textBox2.Text);
}
else // if the user cancel the saving
{
if (Directory.GetFiles(mypath).Length == 0)
{
Directory.Delete(mypath);
}
}

相关内容

最新更新