站內文章

2014年10月27日 星期一

將PC檔案移動至PDA中


原本是想直接從本機讀取PDA裡面的資料庫,結果好像目前還沒有方式能找到PDA路徑
後來就找到了OpenNETCF這個方式,可以copy檔案至PDA 或者從PDA copyfile到PC
雖然說多了一個copy的步驟,但總算解決了要讀到PDA裡面檔案的問題

我的方法用到 OpenNETCF.Desktop.Communication
網路上目前也有很棒的教學(我是看這篇才會的@@) 點我前往
網站上是教你從 OpenNETCF Desktop Communication Library 開始編譯
有興趣就可以上去看看

這邊我直接附上編譯好的 dll  點我下載


                using OpenNETCF.Desktop.Communication; // 需引入 .dll

                string path = @"C:\Documents and Settings\lict\My Documents\WindowsCE My Documents\InBoundPDA.sdf";
                RAPI m_rapi = new RAPI(); ; // 宣告 RAPI 物件
                m_rapi.Connect(true);  // 建立與裝置的同步連接
                // 判斷是否連線
                try
                {
                    if (!m_rapi.Connected)
                    {
                        MessageBox.Show("尚未與裝置連線!");
                        return;
                    }
                    // 將下載的檔案(原本在本機) copy 到 PDA上
                    m_rapi.CopyFileToDevice(path, @"\DB\InBoundPDA.sdf", true); // PC的檔案複製到裝置
                    m_rapi.Disconnect();  // 中斷與裝置的連接
                    File.Delete(path); // 刪除本機檔案
                    MessageBox.Show("下載完成!");

                    // 將PDA的檔案 copy 到 電腦上
                    // m_rapi.CopyFileFromDevice(path, @"\DB\FixTest.sdf", true);

                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }


附上libray的使用方式
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 設定裝置中檔案的日期時間。


文末附上之前看到可以找執行檔案位置的方法
原本還以為這是可以抓PDA的位置-.- 結果不行
不過他能抓到PDA的執行檔案位置(在PDA執行時),如果再PC執行則是抓PC的執行檔位置


                foreach (string dir in Directory.GetDirectories("\\"))
                {
                    if (((new DirectoryInfo(dir)).Attributes & FileAttributes.NotContentIndexed) > 0)
                    {
                        // dir 即是 執行檔案的位置
                        // 可用相對路徑來取得你要的檔案位置
                    }
                }

沒有留言:

張貼留言