嗨,我有一个webform,我试图在特定的目录中创建一个txt文件,但我想要用户输入的txt文件的名称,但我没有得到它如何做,请帮助< / p>
下面的代码创建了一个名为NameBox.Text.ToString的文本文件。我不想要那个请帮助和谢谢。
protected void Page_Load(object sender, EventArgs e)
{
NameLabel.Visible = false;
NameBox.Visible = false;
submit.Visible = false;
}
protected void Button1_Click(object sender, EventArgs e)
{
NameLabel.Visible = true;
NameBox.Visible = true;
submit.Visible = true;
}
protected void submit_Click(object sender, EventArgs e)
{
// string fname = NameBox.Text;
string path = @"D:\NameBox.Text.ToString.txt";
try
{
// Delete the file if it exists.
if (File.Exists(path))
{
// Note that no lock is put on the
// file and the possibility exists
// that another process could do
// something with it between
// the calls to Exists and Delete.
File.Delete(path);
}
// Create the file.
using (FileStream fs = File.Create(path))
{
Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
// Add some information to the file.
fs.Write(info, 0, info.Length);
}
// Open the stream and read it back.
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
}
catch (Exception Ex)
{
Console.WriteLine(Ex.ToString());
}
}
}
答案 0 :(得分:1)
首先,请记住,当您在“控制台”应用程序中进行演示时,您的IIS将不允许您访问本地文件系统,可能以本地管理员权限运行。
其次,要注意文件名的非法字符,您需要检查或替换它。
第三,如果两个用户决定使用相同的文件名怎么办?
正如Dejan Dakic已经提到的那样,退一步重新考虑一下,也许是关于使用SQLite等数据库。
答案 1 :(得分:0)
string path = @"D:\NameBox.Text.ToString.txt";
那不行。如果您的文本字段被称为“NameBox”,则需要访问其文本的值,这在字符串中是不可能的。
试试这个:
String path = @"D:\" + NameBox.Text + ".txt";
如果您不熟悉编程,我建议您去阅读一本书或一些教程,然后以这种方式开始! :)