[转载]pda 和pc 之间的文件操作(利用Microsoft ActiveSync同步文件数据)

时间:2021-04-29 17:51:25

工作中需要实现pc和pda的文件同步。比说我,我用cs端设计好了一个xml文件。现在希望把它传到 pda的指定文件夹下。
或者,我需要 获得pda里某个文件到我的pc上。在网上寻觅了n久,终于被我到了一组可用的api.叫做:
“OpenNETCF Desktop Communication Library”

OpenNETCF官方主页:http://www.opennetcf.com/
在微软的msdn里有篇这样的文章。详细描述了使用过程。网址如下:
http://msdn.microsoft.com/zh-cn/library/ms837846.aspx

我们需要去下载这样的一个api。网址为:
http://rapi.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29281#DownloadId=72961
下载后的是个源代码,你重新编译下就可以用了,发布为release版本的dll.

下面是我的操作过程描述:

1,确保已经安装了 microsoft activesinc

2.将pda通过usb接口连接到pc

3.新建一个项目,引用OpenNETCF.Desktop.Communication.dll

4.在类中使用,添加 using OpenNETCF.Desktop.Communication;
 //实例化一个类变量 
        RAPI _rapi = new RAPI();//远程api封装

        private void pdaToolStripMenuItem_Click(object sender, EventArgs e)
        {

            try
            {
                ConnectPDA();
                string localFileName = @"C:\Documents and Settings\yunfei\桌面\启动msdtc.bat";
                string fileInpdaName = @"\\My Documents\msdtc.bat";
                _rapi.CopyFileToDevice(localFileName, fileInpdaName);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        /// <summary>
        /// 连接pda
        /// </summary>
        private void ConnectPDA()
        {
            _rapi.Connect();
            while (!_rapi.DevicePresent)
            {
                MessageBox.Show("请把设备和pc连接,并确保在连接前已经安装了Microsoft ActiveSync ");
                _rapi.Connect();
            }
        }

5.使用的pda中的路径如下:
调查表(suervy)保存的路径:\\My Documents\SuervySystem\Suervy
填写后的调查表(record)保存路径: \\My Documents\SuervySystem\Data

附:更多RAPI的方法列表:

Connect
 建立与设备的同步连接。
 
CopyFileFromDevice
 将设备中的文件复制到 PC。
 
CopyFileOnDevice
 将设备某个位置的文件复制到设备的另一新位置。
 
CopyFileToDevice
 将 PC 中的文件复制到设备。
 
CreateDeviceDirectory
 在设备中创建目录。
 
CreateProcess
 启动设备中的应用程序。
 
DeleteDeviceFile
 删除设备中的文件。
 
DeviceFileExists
 检查设备中是否存在文件。
 
Disconnect
 中断与设备的连接。
 
EnumFiles
 提供与 FileName 参数提供的条件相匹配的 FileInformation 类数组列表。
 
GetDeviceCapabilities
 检索设备的特定设备信息。
 
GetDeviceFileAttributes
 检索特定设备文件的属性。
 
GetDeviceFileSize
 检索设备文件的大小,以字节为单位。
 
GetDeviceFileTime
 检索设备文件的日期时间。
 
GetDeviceMemoryStatus
 检索设备的内存使用信息。
 
GetDeviceSystemFolderPath
 检索到设备系统文件夹的路径。
 
GetDeviceSystemInfo
 检索设备的系统详细信息。
 
GetDeviceSystemPowerStatus
 检索设备的电源状态。
 
GetDeviceVersion
 检索设备的操作系统版本。
 
MoveDeviceFile
 将现有设备文件移到或重命名到一个新位置。
 
RemoveDeviceDirectory
 删除设备中的目录。
 
SetDeviceFileAttributes
 设置设备中文件的属性。
 
SetDeviceFileTime
 设置设备中文件的日期时间。