先说一下背景
我的系统是win10
开发工具是VS 2015
使用C#做一个文件检测判断。File.Exists一直提示文件不存在,但实际上是存在的。网上搜了一圈,全是权限问题。无意中看到一个帖子提到了复制方式。最终可以解决,但不明其原因,望论坛大神能给个权威的解答。问题描述。
第一种复制方式,在文件属性中复制路径。第二种复制方式,在资源管理器的主页中复制。
写一个简单的方法执行一下,肉眼看路径是完全一样的。但是会出现两个截然不同的结果。用文件属性中复制的地址无法找到文件,用资源管理器-主页复制的路径可以找到文件。
求教大神,这个根因是什么问题呢。跟windows系统和VS有什么联系。

解决方案 »

  1.   

    会不会里面有不可见字符了。
    判断一下:string falsePath = xxx;
    string truePath = xxx;
    // 看看长度是否一致
    Console.Write(falsePath.Length == truePath.Length);for(var i=0;i<falsePath.Length && i<truePath.Length;i++){
    if(falsePath[i] != truePath[i]){
    // 看看有没有不一样的字符
    Console.Write( truePath[i]);
    }
    }
      

  2.   


    你的判断是正确的。字符长度是不一样的,第一个会多出一个字符,无法打印出来。但这里更想知道为什么会有这个现象呢,是windows系统的bug吗?
      

  3.   

    这个问题我上次也是无意中遇到了,写了一段小代码读取excel,结果说excel文件不存在,很是奇怪,我也没去深查原因
      

  4.   

    很正常,比如你在Excel里复制一个字符串,后面一般都会多出一个空格,
    你把多出的这个字符的Ascii码打印出来,看看对应是哪个字符,一般就能知道原因。
      

  5.   

    是多出1个chr(0)估计
      

  6.   

    在路径的起始位置,是多一个字符“?”
    这里很想知道为什么会造成复制后字符长度不一致的问题,这个算系统bug吗?