none
OpenNETCF.Desktop.Communication 的問題 RRS feed

  • 問題

  • 請問一下
    我需要從PDA端上複製資料到PC端
    網路上搜尋的結果是可以直接使用 OpenNETCF.Desktop.Communication Library 的函式
    我先在"參考"中引入了 OpenNETCF.Desktop.Communication.dll
    以下是我的程式碼片段


    using OpenNETCF.Desktop.Communication;

    ...

    {

        RAPI my_RAPI = new RAPI();
        my_RAPI.connect(true);
        my_RAPI.CopyFileFromDevice(@"D:\TestFile.txt","\\TestFile.txt", true);   // 這行拋出"Could not open remote file"的錯誤

    }

    在RAPI.cs的程式碼片段

    private const short INVALID_HANDLE_VALUE = -1;
    .....
    {

        // open the remote (device) file
        remoteFile = CeCreateFile(RemoteFileName, GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); // remoteFile 的結果會是-1

        // check for success
       if ((int)remoteFile == INVALID_HANDLE_VALUE)                
       {
           throw new RAPIException("Could not open remote file");
       }
    }

    上網爬文多半是說路徑或裝置端的檔案不存在,但我的檔案與路徑上因該沒錯
    不曉得有沒有遇到跟我一樣問題
    順帶一題我的開發環境是VS2010,PDA上是CE6.0


    謝謝

     

    2011年11月2日 上午 05:57

解答

  • [但我的檔案與路徑上因該沒錯] 怎麼確認?

    先用 CopyFileToDevice 把你電腦的檔案複製到裝置的跟目錄上,再用 CopyFileFromDevice 把檔案複製回來

    另外,請先確認 OpenNETCF.Desktop.Communication Library 可以用在 WinCE 6.0

            RAPI m_rapi; // 宣告 RAPI 物件 m_rapi
            public Form1()
            {
                InitializeComponent();
                m_rapi = new RAPI();  // m_rapi 實例化 
                m_rapi.Connect(true);  // 建立與裝置的同步連接
            }
    
            // 將 PC 中的檔案複製到裝置
            private void btnCopyToDev_Click(object sender, EventArgs e)
            {
                try
                {
                    // 判斷是否連線
                    if (!m_rapi.Connected)
                    {
                        MessageBox.Show("尚未與裝置連線!");
                        return;
                    }
                    m_rapi.CopyFileToDevice(@"D:\PDAFile.txt", @"\PDAFile.txt", true); // PC的檔案複製到裝置
                    m_rapi.CopyFileFromDevice(@"D:\PDAFile.txt", @"\PDAFile.txt", true); // 裝置的檔案複製到PC
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

    2011年11月2日 上午 06:54
    版主