根据 TextBox 的内容创建文本文件

Creating a text file based on the content of a TextBox

我想使用 TextBox 的内容作为输入创建一个文本文件。
当我 运行 我的应用程序时,尝试在单击按钮时执行此任务时出现此错误:

System.IO.IOException: 'The filename, directory name, or volume label syntax is incorrect: 'C:\Users\Jason\source\repos\App1\App1\bin\Debug\netcoreapp3.1@C:\Users\Jason\Desktoppptest.txt''

这是我的代码:

private void button1_Click(object sender, EventArgs e)
{
    string filename = ("@C:\Users\Jason\Desktop\app") + (textBox2.Text) + (".txt");
    File.Create(filename);
}

将@ 符号放在引号之前。路径不能包含@符号。

另请参阅 https://docs.microsoft.com/en-us/dotnet/api/system.io.path?view=net-5.0。这在处理目录时很少见。

第二个问题是您试图连接两个单独的目录。只生成一个以便正确创建文件。它应该是这样的。

C:\Users\Jason\source\repos\App1\App1\bin\Debug\netcoreapp3.1\test.txt'.

我不知道您为什么使用 () 来连接这些字符串。如果文件名中的 app 是文件夹,则添加另一个 \。这应该有效:

private void button1_Click(object sender, EventArgs e)
{
    string filename = @"C:\Users\Jason\Desktop\app\" + textBox2.Text + ".txt";
    File.Create(filename);
}

设置文件名如下。桌面上应该有一个app文件夹。

字符串文件名=@"C:\Users\Jason\Desktop\app" + textBox2.Text + ".txt";

测试这种情况的快速方法是用 LinqPad(或在线编译器)之类的东西编写它们并使用 WriteLine 输出字符串 - 这是验证字符串是否是您想要的最快方法

在你的情况下你会看到这样的东西:

string filename = "C:\Users\Jason\Desktop\app\" + textBox2.Text + ".txt";