使用c#创建用户输入名称的文本文件

时间:2014-11-13 09:44:32

标签: c# .net visual-studio-2012

嗨,我有一个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());
    }
}
    } 

2 个答案:

答案 0 :(得分:1)

首先,请记住,当您在“控制台”应用程序中进行演示时,您的IIS将不允许您访问本地文件系统,可能以本地管理员权限运行。

其次,要注意文件名的非法字符,您需要检查或替换它。

第三,如果两个用户决定使用相同的文件名怎么办?

正如Dejan Dakic已经提到的那样,退一步重新考虑一下,也许是关于使用SQLite等数据库。

答案 1 :(得分:0)

string path = @"D:\NameBox.Text.ToString.txt";

那不行。如果您的文本字段被称为“NameBox”,则需要访问其文本的值,这在字符串中是不可能的。

试试这个:

String path = @"D:\" + NameBox.Text + ".txt";

如果您不熟悉编程,我建议您去阅读一本书或一些教程,然后以这种方式开始! :)