【问题标题】:c# File.Exists always return false using value propertyc# File.Exists 总是使用 value 属性返回 false
【发布时间】:2018-06-01 09:30:12
【问题描述】:

在调试过程中,我发现了一些烦人的事情。 我的驱动器上有一个文件,我想知道为什么如果我使用文件存在函数它总是返回 false,使用属性值。我也在即时窗口中尝试,这是结果

ACGateLoginSystem.MAP_PATH == @"‪D:\Capture001.png" | true

?File.Exists(ACGateLoginSystem.MAP_PATH) | false

?File.Exists("D:\\Capture001.png") | true

我使用的是 Windows 10 最新版本和 Visual Studio 2017。

【问题讨论】:

  • 可能与link相关的东西
  • 你放在一边的布尔值,应该是赞扬还是速记运算符?
  • @Adriani6 那些布尔值是他在调试过程中得到的结果,我觉得。你不这么认为吗?
  • 该 |布尔值是立即窗口结果。
  • @user3851362 您可以查看我发布的答案,如果它不能解决您的问题,然后发布您的完整代码。

标签: c# visual-studio-2017


【解决方案1】:

以下对我有用。

namespace ConsoleApplication1
{
    class LoginSystem
    {
        public string MAP_PATH { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            LoginSystem ACGateLoginSystem = new LoginSystem();
            ACGateLoginSystem.MAP_PATH = @"D:\1.png";

            if (File.Exists(ACGateLoginSystem.MAP_PATH))
                Console.WriteLine("File Exists");

            if (File.Exists("D:\\1.png"))
                Console.WriteLine("File Exists - with direct path");

            Console.ReadLine();
        }
    }
}

输出:

【讨论】:

  • 在您的解决方案中检测到,但在项目中仍然遇到问题。 ACGateLoginSystem.MAP_PATH = @"D:\1.png";然后我使用即时窗口这是结果 ?File.Exists(ACGateLoginSystem.MAP_PATH) false ?File.Exists(@"D:\1.png") true
  • 可能问题出在其他地方。您需要发布整个代码
【解决方案2】:

反斜杠字符 \ 是 C#(以及任何类 C 语言)中的特殊字符。它与第二个结合使用来定义特殊字符。因此,这将起作用:

File.Exists("D:\\Capture001.png")

这应该可以工作

File.Exists(@"D:\Capture001.png")

这行不通

File.Exists("D:\Capture001.png")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 2019-10-06
    • 2015-10-20
    相关资源
    最近更新 更多