赞
踩
先看一段代码:
string fileName_Apple1 = @"C:\Users\Administrator\Desktop\1.png";
string fileName_Apple2 = @"C:\Users\Administrator\Desktop\1.png";
Image img1 = Image.FromFile(fileName_Apple1);
Image img2 = Image.FromFile(fileName_Apple2);
从表面看,fileName_Apple1 和fileName_Apple2 的值是相等的,然后奇怪的事情发生了,= Image.FromFile(fileName_Apple2);会报错,如下:
刚开始我也纳闷,然后调用了字符串对比,惊奇的发现fileName_Apple1和fileName_Apple2是不同的。
然后又改成了下述代码:将字符串的每个字符打印出来
string fileName_Apple1 = @"C:\Users\Administrator\Desktop\1.png"; string fileName_Apple2 = @"C:\Users\Administrator\Desktop\1.png"; if (fileName_Apple1 == fileName_Apple2) { Console.WriteLine("相同"); } else { Console.WriteLine("不同"); } char[] char1 = fileName_Apple1.ToCharArray(); char1.ToList().ForEach(item=>Console.WriteLine (item)); Console.WriteLine("--------------------------"); char[] char2 = fileName_Apple2.ToCharArray(); char2.ToList().ForEach(item => Console.WriteLine(item)); Image img1 = Image.FromFile(fileName_Apple1); Image img2 = Image.FromFile(fileName_Apple2);
输出:
C : \ U s e r s \ A d m i n i s t r a t o r \ D e s k t o p \ 1 . p n g -------------------------- ? ? ? C : \ U s e r s \ A d m i n i s t r a t o r \ D e s k t o p \ 1 . p n g
这就发现问题了,fileName_Apple2在C这个字符前居然还有三个字符,说明这个字符串有问题,然后将鼠标光标移动到这里,删掉了那三个字符问题就解决了,神奇的是,我们看不出来那里有字符,但是实际上他有多余的字符。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。