在C#中只读取文件名的某个部分

时间:2017-01-23 20:46:55

标签: c#

我刚才对这个页面不熟悉但已经有问题要问。

好的,我现在正在一个更大的项目(至少对我而言),在一台机器上使用一个约3个Minecraft服务器的服务器接口。

现在我已经到了不再需要手动调用startfiles的地步,所以我创建了一个函数来创建一个Savefile,其中包含名为“(name_of_server)_SAVEFILE”的“servers”startfile(它是一个简单的批处理文件)的位置(number_of_server).TXT”。

现在我希望程序通过询问之前谈到的数字来向我展示(最好在启动时)实际保存了多少台服务器。

我还想实现一个锁,这样已经创建的文件号不能用另一个名字保存,但那是一个不同的故事。

我是这样做的:

    private void checkForServer_button_Click(object sender, EventArgs e)
    {
        if (File.Exists(@"C:\Users\" + system_user + @"\Desktop\savedServers\*1.txt") == true)
        {
            string server1_location = File.ReadAllText(@"C:\Users\" + system_user + @"\Desktop\savedServers\*_SAVEFILE1.txt");
            checkForServer_response.Text = "There are Servers!";
            onlyInfo.Clear();
            onlyInfo.Text = "[CONSOLE] Found existing Server! Found at: " + server1_location;
        }
    }

onlyInfo是一个用作虚拟输出atm的RichTextBox,可能会保留在最终版本中以显示保存的批处理文件的外观。

是的,所以基本上我的代码在点击按钮时什么都不做。

另一个问题是,如何正确设置“*”以用于此类用法。

提前致谢!

1 个答案:

答案 0 :(得分:1)

File.Exists不支持文件名中的常用字符。 File.ReadAllText也没有。

string[] files = System.IO.Directory.GetFiles(@"C:\Users\" + system_user + 
  @"\Desktop\savedServers\", "*1.txt");
if (files.Length > 0)
{
  string server1_location = File.ReadAllText(files[0]);
  ...
} 
相关问题