線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1497
推到 Plurk!
推到 Facebook!

請教各位前輩們~如何取得移動後的檔案路徑

答題得分者是:小傑克
terrygobb
一般會員


發表:5
回覆:22
積分:5
註冊:2009-04-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-05-15 10:56:44 IP:220.130.xxx.xxx 訂閱
各位前輩你們好

小弟目前在研究在指定的路徑底下做檔案監視的動作

這方面是已經成功了,但搜尋過文章以後

好像沒有檔案移動後這方面的資料,可能關鍵字的問題吧

我的想法是這樣的,假如我做監視的路徑是d:\music\

那如果d:\music\fly.mp3被移動到d:\music1\下變成d:\music1\fly.mp3

不曉得是否有函數可以取得移動後的檔案路徑

希望有這方面經驗的前輩略點一二,我會再try程式的~謝謝你們
------
尋找對的人,對的方法,對的態度跟對的環境
編輯記錄
terrygobb 重新編輯於 2009-05-15 10:58:25, 註解 無‧
terrygobb 重新編輯於 2009-05-15 11:48:17, 註解 無‧
terrygobb
一般會員


發表:5
回覆:22
積分:5
註冊:2009-04-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-05-15 12:10:03 IP:220.130.xxx.xxx 訂閱
剛想到另一種取得的方式,但不曉得這樣是否可行

望請各位前輩們指點一二

因為移動檔案一定是剪下後在貼上 (以最單純的方式來看)

那是否抓取CTRL X 的值以後,抓取被剪下的檔案路徑

在等待CTRL V 的值發生以後,抓取貼上的檔案路徑

以上這兩種不曉得跟 滑鼠點右鍵→剪下 跟 滑鼠右鍵→貼上 的值是否一樣?

如果一樣的話

那如果這樣做的話,應該可以達到我要的方式吧~

不曉得是否有錯,請前輩們指點指點,感恩~
------
尋找對的人,對的方法,對的態度跟對的環境
編輯記錄
terrygobb 重新編輯於 2009-05-15 12:11:19, 註解 無‧
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-05-15 16:11:10 IP:59.112.xxx.xxx 訂閱
ShellChangeNotifier 這個元件可以monitor 路徑, 但是我剛剛試過,好像只能知道monitor 有變更, 找不到方法取變更細節

根據msdn 上敘述 ReadDirectoryChangesW 可以做到
http://blogs.msdn.com/tmarq/archive/2007/11/02/asp-net-file-change-notifications-exactly-which-files-and-directories-are-monitored.aspx

至於用法sample 你可能要google 一下去找看看, 資訊提供你參考
------
額有朝天骨,眼中有靈光
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-05-15 16:17:35 IP:59.112.xxx.xxx 訂閱
剛剛用ReadDirectoryChangesW 在ktop 搜尋 , 原來有好多前輩回答過.....汗!!!
------
額有朝天骨,眼中有靈光
terrygobb
一般會員


發表:5
回覆:22
積分:5
註冊:2009-04-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-05-15 16:38:51 IP:220.130.xxx.xxx 訂閱
謝謝小傑克前輩 

多虧您的回答了

謝謝您一直回答小弟的問題,感激不盡

不過監視的功能已經完成了,是小弟沒把問題表達清楚

浪費您的時間了,在這跟您說聲不好意思,下次一定會改進

我有想到查找win API看是否可以組出我要的這些功能

找到最近出版的電子書,雖然是大陸的,九百多頁...- -"

如果需要的話,我在傳上來分享給大家

網址如下

http://www.4shared.com/file/105504239/1f7ca219/NEW_Windows_API_REFF_PDF.html
------
尋找對的人,對的方法,對的態度跟對的環境
編輯記錄
terrygobb 重新編輯於 2009-05-15 16:54:30, 註解 無‧
terrygobb 重新編輯於 2009-05-15 17:04:13, 註解 無‧
terrygobb 重新編輯於 2009-05-15 17:04:31, 註解 無‧
terrygobb 重新編輯於 2009-05-15 17:05:41, 註解 無‧
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-05-15 18:36:31 IP:59.112.xxx.xxx 訂閱
講到api 我也分享一下我的經驗, 雖然以前用vb的時候也看過win32 api的書,但後來也忘的差不多,那麼多怎麼可能記的住,不過,幸運的是, 以前可以上msdn網站查, 重點是google 大神出來後, 連查都不用 ,  畢竟能定這些api的人, 沒一個不是超高IQ的, 他們不但考慮到相容性,包容性, 甚至連閱讀性都考慮到

以這個case為例, 我先想的是找看看有沒有檔案移動通知的api, 因為我知道delphi有宣告大部分的win api, 所以我在delphi中把 windows.pas,classes.pas,....FileCtrl,pas這些 open file at cursor ,然後Find in file -> search all open file 找 'notify' , 就找到 FILE_NOTIFY_CHANGE_FILE_NAME ,然後我在google FILE_NOTIFY_CHANGE_FILE_NAME msdn 就看到msdn 中 thomas 那篇文章就看到 ReadDirectoryChangesW 這個api , 然後又在 windos.pas 這裡面find 找到 ReadDirectoryChangesW 還有看到相關的FindFirstChangeNotificationW...等等, 然後 google ReadDirectoryChangesW delphi 就看到有些範例

老實講現在因為網路發達, 要找到解決方法已經沒這麼難了, 基本上功能性的問題, 大概所有問題都有解答(全球號稱有500萬以上人在coding), 結論...google大神萬歲, 只是會害大家失業 >< !!
------
額有朝天骨,眼中有靈光
terrygobb
一般會員


發表:5
回覆:22
積分:5
註冊:2009-04-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-05-18 11:03:15 IP:220.130.xxx.xxx 訂閱
謝謝小傑克前輩您的流程解說

讓我有了一些新的想法

這兩天著實看著api 也摸不出個所以然

可能我還有待加強

照您的流程,我目前還在嘗試中

希望能盡早完成 ^^

謝謝您的回覆喔 感謝^^

目前照小傑克前輩的說法,目前找到一個網頁

還蠻有感覺的,雖然英文不好,但還是照啃啦~~~哈 = =""

http://www.osnews.com/story/7376/A_Directory_Monitor_Class_For_Delphi/page1/

測試出來在分享上來 Q_Q~
------
尋找對的人,對的方法,對的態度跟對的環境
編輯記錄
terrygobb 重新編輯於 2009-05-18 11:33:11, 註解 無‧
系統時間:2024-05-16 16:33:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!