C# 中的 File.WriteAllText() 语句未创建文件

File.WriteAllText() statement in C# not creating a file

我仍然只是在 Visual Studio 学习 C#,我正在尝试制作一个简单的文本加密应用程序。我现在的问题是,当我使用命令时:

File.WriteAllText(name, inputTextBox.Text);

(其中 name 是在 SaveFileDialog 中选择的文件的名称,inputTextBox.Text 是主窗体文本框中的文本) 但是该文件从未真正创建过。我什至尝试构建应用程序并 运行 作为管理员,但什么也没发生。

更奇怪的是,当我打开文件资源管理器时,在显示最近文件的“快速访问”部分,所有应该创建的文件都显示在那里,但当我单击 "Open File Location" 如果我只是尝试打开它们,记事本只会告诉我文件不存在。

这些文件也不在我的回收站或其他任何地方。 这是我的其余代码,以防出现问题:

public Form1()
    {
        InitializeComponent();
    }

    private void saveButton_Click(object sender, EventArgs e)
    {
        saveDialog.ShowDialog();
    }

    private void saveDialog_FileOk(object sender, CancelEventArgs e)
    {
        string name = saveDialog.FileName;
        File.WriteAllText(name, inputTextBox.Text);
    }

如果您想知道 saveDialog 已经是我表单中的一个元素,那么这没有问题。

由于在您发布的代码中缺少 SaveFileDialog 的初始化,并且您在评论中说调试器不会在事件主体中停止,所以我从长远来看假设事件是没有正确注册。

尝试确保您的 class(至少)类似于以下示例:

public partial class Form1 : Form
{

    SaveFileDialog saveDialog;

    public Form1()
    {
        InitializeComponent();
        // create instance of SaveFileDialog
        saveDialog = new SaveFileDialog();
        // registration of the event
        saveDialog.FileOk += SaveDialog_FileOk;
    }

    private void saveButton_Click(object sender, EventArgs e)
    {
        saveDialog.ShowDialog();
    }

    private void saveDialog_FileOk(object sender, CancelEventArgs e)
    {
        string name = saveDialog.FileName;
        File.WriteAllText(name, inputTextBox.Text);
    }
}

如果您的问题仍然存在,那么我将删除我的答案