我要用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;

解决方案 »

  1.   

    请问楼上 caozhy 怎么加标志字段? 有代码吗 我是菜鸟。。
      

  2.   

    sdf格式啊。那传输完数据文件再传输一个空文件。(比如和sdf文件同名,不同扩展名,如传输 123.sdf,那么就产生一个 123.empty 的空文件)如果发现没有这个空文件,就是没有传完断开了。
      

  3.   

    rApi.CopyFileFromDevice(dirName + "\\xxx.sdf", "\\ProgramFiles\\xxx.sdf", true);
    rApi.CopyFileFromDevice(dirName + "\\xxx.sdf", "\\ProgramFiles\\xxx.txt", true);
    然后判断本地是否有XXX.TXT?
    如果这样写的话  那第一句没传完就断开了 ,第二句就不执行了?
      

  4.   

    嗯。但是你没有必要传xxx.sdf了,再传一个空文件不更好么,因为你只要判断文件有没有。