首页 > 解决方案 > 如何检查文件是否存在于 C# 中?

问题描述

我的程序遇到了一些问题。无论如何要检查文件是否存在,但是当每个文件都有不同的名称时。例如:1.txt 2.txt 3.txt 4.txt。目前,我的代码创建了单独的文件,但是当应用程序关闭并重新打开时,它会重新写入 txt 文件。我正在使用 Visual Studio 2019 和 C# 中的编码。这是我正在使用的一些代码:

    int Count = 1;
    string path = "D:\\Bot\\Bot\\Tasks\\{0}.txt";
    private void btn1_Click(object sender, EventArgs e)
    {
        if (System.IO.File.Exists(path))
        {
            Count++;
        }
        string selectedsite = this.comboBox1.GetItemText(this.comboBox1.SelectedItem);
        string selectedsize = this.comboBox1.GetItemText(this.comboBox2.SelectedItem);
        string selectedproduct = this.comboBox1.GetItemText(this.comboBox3.SelectedItem);
        string selectedproxies = this.comboBox1.GetItemText(this.comboBox4.SelectedItem);
        string selectedprofiles = this.comboBox1.GetItemText(this.comboBox5.SelectedItem);
        string[] FileInfo = { selectedsite, " ", selectedsize, " ", selectedproduct, " ", selectedproxies, " ", selectedprofiles };
        var newFileName = string.Format(@"D:\Bot\Bot\Tasks\{0}.txt", Count);
        Count++;
        System.IO.File.WriteAllLines(newFileName, FileInfo);


    }

标签: c#visual-studio

解决方案


您可以在循环中查询每个文件是否存在,或者您可以列出目录中的所有文件,找到最大的文件并从那里开始

Count = Directory.GetFiles(@"D:\Bot\Bot\Tasks")
  .Select(Path.GetFileNameWithoutExtension)
  .Select(f => int.TryParse((f), out var x) ? x : int.MinValue)
  .Max() + 1;

推荐阅读