怎么用C#判断文件的完整性

wangchuncui 2011-07-11 10:35:54
我要用PDA中将Mobile数据库备份到本地电脑上,但是有时候备份的文件老是损坏,想问问大侠们,怎么才能判断备份的文件是否完整啊。 代码如下:
bool IsOk=false;
try
{
string strTemp = "";
rApi.Connect();
if ((rApi.DeviceFileExists("\\Program Files\\xxx.sdf")))
{
if (File.Exists(dirName + "\\xxx.sdf"))
File.Delete(dirName + "\\xxx.sdf");
//将文件从PDA中拷贝到本地电脑中
rApi.CopyFileFromDevice(dirName + "\\xxx.sdf", "\\ProgramFiles\\xxx.sdf", true);
//备份数据文件
strTemp = dirName + "\\" + System.DateTime.Now.ToString("yyyyMMddhhmm");
DirectoryInfo dirinfo = Directory.CreateDirectory(strTemp);
rApi.CopyFileFromDevice(strTemp + "\\xxx.sdf", "\\ProgramFiles\\xxx.sdf", true);
//备份结束
rApi.DeleteDeviceFile("\\Program Files\\xxx.sdf");
IsOk = true;
}
else
{
backUpDBToPDA(dirName); //将文件备份回PDA
IsOk = false;
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
IsOk=false;
}
return IsOk;
...全文
917 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
minipai 2011-08-26
  • 打赏
  • 举报
回复
用engine.Verify()判断
isjoe 2011-07-11
  • 打赏
  • 举报
回复
拷贝文件后,先进行一次简单的测试,目标文件是否存在,大小是否一致,

然后在整体校验对比一次。。。。

网上有很多MD5的对比方式,很多。
threenewbee 2011-07-11
  • 打赏
  • 举报
回复
嗯。但是你没有必要传xxx.sdf了,再传一个空文件不更好么,因为你只要判断文件有没有。
wangchuncui 2011-07-11
  • 打赏
  • 举报
回复
rApi.CopyFileFromDevice(dirName + "\\xxx.sdf", "\\ProgramFiles\\xxx.sdf", true);
rApi.CopyFileFromDevice(dirName + "\\xxx.sdf", "\\ProgramFiles\\xxx.txt", true);
然后判断本地是否有XXX.TXT?
如果这样写的话 那第一句没传完就断开了 ,第二句就不执行了?
threenewbee 2011-07-11
  • 打赏
  • 举报
回复
sdf格式啊。

那传输完数据文件再传输一个空文件。(比如和sdf文件同名,不同扩展名,如传输 123.sdf,那么就产生一个 123.empty 的空文件)

如果发现没有这个空文件,就是没有传完断开了。
wangchuncui 2011-07-11
  • 打赏
  • 举报
回复
怎么做md5 验证啊
wangchuncui 2011-07-11
  • 打赏
  • 举报
回复
请问楼上 caozhy 怎么加标志字段? 有代码吗 我是菜鸟。。
threenewbee 2011-07-11
  • 打赏
  • 举报
回复
1 判断文件的长度,如果文件长度固定或者可以算出的话
2 在文件最后加上一个标志字段,最后写入,如果没有,说明文件损坏
bdmh 2011-07-11
  • 打赏
  • 举报
回复
那做个md5码验证吧

111,126

社区成员

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

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

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