我不想覆盖或保存相同的文件名

时间:2016-03-28 13:57:12

标签: c# .net

我制作了一个注册系统。但问题是同名文件已被覆盖或重命名。举个例子 如果我的文件名是

Fasih.txt

现在我想要做的另一个用户使用相同名称Fasih然后消息框显示错误并且不覆盖或重命名该文件。

  private void btnCreate_Click(object sender, EventArgs e)
    {
        System.IO.TextWriter tw = new System.IO.StreamWriter(txtUsername.Text + ".txt");
        tw.WriteLine(txtPassword.Text);
        tw.Close();
        tw.Dispose();
        this.Close();
        if (File.Exists(txtUsername.Text + ".txt"))
        {
            MessageBox.Show("Already used ", "Use diferent name");

2 个答案:

答案 0 :(得分:0)

类似的东西:

private void btnCreate_Click(object sender, EventArgs e) {
  String fileName = Path.Combine(txtUsername.Text, ".txt");

  if (File.Exists(fileName)) 
    MessageBox.Show("Already used ", "Use diferent name");
  else { 
    // OK
    File.WriteAllText(fileName, txtPassword.Text); 

    Close(); // if you want to close form here
  }
}

答案 1 :(得分:-1)

在您的代码示例中,您在检查文件是否存在之前已经写入该文件,因此该文件将始终存在。您需要在之前检查,然后才能写入文件。

类似的东西:

private void btnCreate_Click(object sender, EventArgs e) {
    var filename = txtUsername.Text + ".txt";

    if (File.Exists(filename))
    {
        MessageBox.Show("Already used ", "Use different name");
    }
    else
    {
        System.IO.TextWriter tw = new System.IO.StreamWriter(filename);
        tw.WriteLine(txtPassword.Text);
        tw.Close();
        tw.Dispose();
        this.Close();
    }