遇到了一个非常神奇的bug!明明磁盘上存在文件,File.Exists就是返回false!

lianying168000 2020-08-21 10:39:34
文件明明存在,File.Exists就是返回false。。。
如果我用File.ReadAllText去读取的话,会报下面的异常。
之前都是可以用的,昨天晚上然后突然发现这些调用不能用了。
...全文
9603 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34778040 2023-04-18
  • 打赏
  • 举报
回复

老问题了 linux问题

lianying168000 2020-08-25
  • 打赏
  • 举报
回复
配置文件就是一个普通的文本文件,然后过了两天它自己好了(这两天中有重启电脑,但我一直在代码里写死文件路径了)。刚刚我测试了一下,自动好了,代码什么的都没动。感觉就是.net framework框架有时候也会不稳定(比如它里面的一个什么服务之类的挂掉了,当然这个大多数情况下不会出现,当你用的时间久了有可能碰到这种问题)
八爻老骥 2020-08-24
  • 打赏
  • 举报
回复
单点进去,看下json中返回的路径字符串是什么样的?
lianying168000 2020-08-24
  • 打赏
  • 举报
回复
代码如下:
private static void Main(string[] args) {
            try {
                var arguments = CommandLineParser.Parse(args);


                if (!arguments.Has("-configPath")) {
                    Console.WriteLine("No configuration file path is specified, please check this...");
                    return;
                }
                configPath = arguments.Get("-configPath").Take();

                _config = JsonConvert.DeserializeObject<ParameterConfig>(File.ReadAllText(configPath));

                if (File.Exists(_config.FilePathList[0])) {
                    Console.WriteLine();
                }
}

    public class ParameterConfig {
        #region Properties
        [JsonConverter(typeof(StringListJsonConverter))]
        public List<string> FilePathList { get; set; }
        #endregion

        #region Internal Class
        public sealed class StringListJsonConverter : JsonConverter {
            public override bool CanConvert(Type objectType) {
                return typeof(List<string>).Equals(objectType);
            }

            public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) {
                string str = reader.Value.ToString().Trim();
                string[] ss = str.Split(',');
                List<string> resultList = new List<string>();
                foreach (var s in ss) {
                    resultList.Add(s.Trim());
                }
                return resultList;
            }

            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) {
                throw new NotImplementedException();
            }
        }
        #endregion
    }


我测试的是d盘根目录下的"d:\\test.txt"文件,我手写路径File.Exists测试是true,但反序列化的就不行。
tcmakebest 2020-08-24
  • 打赏
  • 举报
回复
反序列化的内容, 应该是你手动打的, 错了, 因为你不懂编码规则.
lianying168000 2020-08-24
  • 打赏
  • 举报
回复
引用 9 楼 shawn_yang 的回复:
知道@不,微软最佳处理这种问题办法,就是字符串加个@
老哥 试过了,没用的
shawn_yang 2020-08-24
  • 打赏
  • 举报
回复
知道@不,微软最佳处理这种问题办法,就是字符串加个@
Bridge_go 2020-08-21
  • 打赏
  • 举报
回复
win10系统,复制的路径么?win10复制路径有问题 你试试手写路径就知道了
w63260497 2022-08-30
  • 举报
回复
@Bridge_go 老哥威武,搞了2个小时,出了鬼,写打上去就好了,拷上去怎么都不行
正怒月神 2020-08-21
  • 打赏
  • 举报
回复
代码发出来, 是不是含有中文路径,或者不可见字符? 把路径从我的电脑里复制进程序试试看。
liuding214cs 2020-08-21
  • 打赏
  • 举报
回复
应该路径有问题是不是没用双\\
键盘敲出字 2020-08-21
  • 打赏
  • 举报
回复
调试看下文件路径
lianying168000 2020-08-21
  • 打赏
  • 举报
回复
这个是我操作系统哪里出问题了还是我.net framework框架出问题了呢?
hebeijg 2020-08-21
  • 打赏
  • 举报
回复
32位和64位导致的
ziqi0716 2020-08-21
  • 打赏
  • 举报
回复
换个路径试试

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧