【问题标题】:How to check if the text file exists in the solution directory?如何检查解决方案目录中是否存在文本文件?
【发布时间】:2020-01-02 17:35:04
【问题描述】:

我正在制作一个 C#、Windows 窗体应用程序。

如何检查解决方案目录中是否存在文本文件?

我打算在另一台计算机上使用它,所以我无法写出确切的位置,我想如果我检查解决方案目录中存在的文本文件,它可以工作。

还有其他方法可以做到这一点吗?

if (File.Exists(@System.AppContext.BaseDirectory\"TextFileName.txt")) 
{
Console.WriteLine("The file exists.");
}

它给出了 2 个错误。

CS1056 C# 意外字符'\'

CS1003 C# 语法错误,',' 预期

【问题讨论】:

  • @在系统前面做什么
  • 我认为你的意思是这样做 System.AppContext.BaseDirectory + "\TextFileName.txt"。为了让它更好,你可以做 Path.Combine(System.AppContext.BaseDirectory, "TextFileName.txt")
  • @It'satrap 我只是想,当我们通常写完全目录时,我们使用@。我是编码新手,我不知道我们为什么使用@,但我把它放在那里。
  • 编码新手是另一回事,不知道自己在做什么以及为什么不同。这样,您将始终对编码保持新状态。

标签: c# text-files exists


【解决方案1】:

使用Path.Combine 创建路径。

var path= Path.Combine(System.AppContext.BaseDirectory, "TextFileName.txt")
if (File.Exists(path)) 
{
   Console.WriteLine("The file exists.");
}

【讨论】:

    【解决方案2】:

    Path.Combine() 很冗长,用于组合路径,但这里是 string interpolation 的解决方案

    var path = $"{System.AppContext.BaseDirectory}\\TextFileName.txt"
    if (File.Exists(path)) 
    {
       Console.WriteLine("The file exists.");
    }
    

    【讨论】:

    • 我用链接更新了我的答案。对您的评论的简短回答是:这种格式用于将变量替换为其值。在您的情况下,变量是System.AppContext.BaseDirectory。试试我的解决方案,你会学到一些新东西。 ?
    【解决方案3】:

    你接近了。只是对路径字符串稍作改动:

    if (File.Exists(System.AppContext.BaseDirectory + "\\TextFileName.txt")) 
    {
    Console.WriteLine("The file exists.");
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 2012-07-02
    • 2014-03-06
    相关资源
    最近更新 更多