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

时间:2016-07-06 08:52:55

标签: c# visual-studio text save savefiledialog

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

File.WriteAllText(name, inputTextBox.Text);

(其中name是在SaveFileDialog中选择的文件的名称,inputTextBox.Text是主窗体上文本框中的文本) 但是文件永远不会真正创建。我甚至尝试构建应用程序并以管理员身份运行它,但没有任何反应。

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

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

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已经是我表单中的一个元素,那么就没有问题了。

1 个答案:

答案 0 :(得分:1)

由于在您发布的代码中缺少SaveFileDialog的初始化,并且您在评论中说调试器没有在事件正文中停止我采取远景假设事件未注册适当。

尝试确保您的类(最低限度)看起来像以下示例:

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);
    }
}

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