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);
}
}
如果您的问题仍然存在,那么我将删除我的答案
我仍然只是在 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);
}
}
如果您的问题仍然存在,那么我将删除我的答案