首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

C# WinCE 复制文件并使用CRC校验正确性,该怎么解决

2012-02-29 
C# WinCE 复制文件并使用CRC校验正确性在WinCE上面用C#写了一个测试程序,动态生成一个几兆的文件,然后用Co

C# WinCE 复制文件并使用CRC校验正确性
在WinCE上面用C#写了一个测试程序,动态生成一个几兆的文件,然后用ComputeHash得到hash值。然后复制到SD卡中,再用ComputeHash得到一个复制文件的hash值。对比2个值检验文件的正确性。
我的问题是,同样的代码在WindowsMobile6就可以运行通过。但是放到CE6中就会得到不同的验证码。

C# code
FileStream sf = File.Open(CopiedFile, FileMode.Open);Crc32 crc32 = new Crc32();String hash = String.Empty;foreach (byte b in crc32.ComputeHash(sf)){    hash += b.ToString("x2").ToLower();}sf.Close();if (!hash.Equals(expectedCRC))//TestResult Fail


比如:
Windows Mobile 的结果:
CRCFile=4db08aa4
CopiedCRC=4db08aa4

Windows CE 的结果:
CRCFile=dfec6e7d
CopiedCRC=a8f42e63
应该从哪几个方面去考虑为什么出错?


[解决办法]
建议 LZ 先用小的文件试试算法是否正确?
[解决办法]
文件复制是手工复制还是代码复制?

代码复制的话注意写完要关闭文件的handle
[解决办法]
文件的编码解码格式不同?
[解决办法]
首先,2楼的建议得确定一下,如果是代码复制文件,是否能保证两个文件一样;
其次,要考虑一下平台的差异,比如说两个平台数据存储方式是否一样等。
[解决办法]
要注意 Unicode 与 ASCII 编码。
[解决办法]
问题应该在编码和解码上,都固定使用GB2312吧
[解决办法]
注意编码

热点排行