




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、的彩宗教網(wǎng)-3HLPi匚口”找家教,到陽光陽光家教網(wǎng)全國最大家教平臺VC 移動復(fù)制,刪除文件(SHFileOperation)(2009-10-0514:14:34)轉(zhuǎn)載標(biāo)簽:分類:技術(shù)網(wǎng)摘it(轉(zhuǎn)載于:http:/ 1 pFrompFrom 和 pTopTo 最好以0000 結(jié)尾(把存放路徑的字符串初始化為 0),0),不然有可能會出錯,中間的每一個路徑用00 隔開2 2pFropFrom m所指向的文彳或文件夾何以多個) )會被復(fù)制或移動到pTpTo o所指向的文件夾下面(假如文件夾不存在會詢問是否創(chuàng)建,當(dāng)然你也可以選擇直接創(chuàng)建)參數(shù)詳解:Typedefstruct_ShFILEOPSTR
2、UCTHWNDhWnd;/消息發(fā)送的窗口句柄;UINTwFunc;/操作類型LPCSTRpFrom;/源文件及路徑LPCSTRpTo;/目標(biāo)文件及路徑FILEOP_FLAGSfFlags;/操作與確認標(biāo)志BOOLfAnyOperationsAborted;/操作選擇位dr覦翳家教網(wǎng)7LK,。.”“找家泡到阻光陽光家教網(wǎng)全國最大燹教干臺LPVOIDhNameMappings;/文件映射LPCSTRIpszProgressTitle;/文件操作進度窗口標(biāo)題SHFILEOPSTRUCT,FAR*LPSHFILEOPSTRUCT;在這個結(jié)構(gòu)中,hWnd是指向發(fā)送消息的窗口句柄,pFrom與pTo是進行
3、文件操作的源文件名和目標(biāo)文件名,它包含文件的路徑,對應(yīng)單個文件的路徑字符串,或?qū)τ诙鄠€文件,必須以NULL作為字符串的結(jié)尾或文件路徑名之間的間隔,否則在程序運行的時候會發(fā)生錯誤。另外,pFrom和pTo都支持通配符*和?,這大大方便了開發(fā)人員的使用。例如,源文件或目錄有兩個,則應(yīng)是:charpFrom尸d:Test10d:Text.txt0,它表示對要D:盤Test目錄下的所有文件和D:盤上的Text.txt文件進行操作。字符串中的是C語言中的的轉(zhuǎn)義符,0則是NULLowFunc是結(jié)構(gòu)中的一個非常重要的成員,它代表著函數(shù)將要進行的操作類型,它的取值為如下:FO_COPY:拷貝文件pFrom到p
4、To的指定位置。FO_RENAME:將pFrom的文件名更名為pTo的文件名。FO_MOVE:將pFrom的文件移動到pTo的地方。FO_DELETE:刪除pFrom指定的文件。使用該函數(shù)進行文件拷貝、移動或刪除時,如果需要的時間很長,則程序會自動在進行的過程中出現(xiàn)一個無模式的對話框(Windows操作系統(tǒng)提供的文件操作對話框),用來顯示執(zhí)行的進度和執(zhí)行的時間,以及正在拷貝、移動或刪除的文件名,此時結(jié)構(gòu)中的成員IpszProgressTitle顯示此對話框的標(biāo)題。fFlags是在進行文件操作時的過程和狀態(tài)控制標(biāo)識。它主要有如下一些標(biāo)識,也可以是其組合:FOF_FILESONLY:執(zhí)行通配符,只
5、執(zhí)行文件;FOF_ALLOWUNDO:保存UNDO信息,以便在回收站中恢復(fù)文件;河龍家教網(wǎng)kJrWTTPs/WlillUJ.yGJJ.CnM/FOF_NOCONFIRMATION:在出現(xiàn)目標(biāo)文件已存在的時候,如果不設(shè)置此項,則它會出現(xiàn)確認是否覆蓋的對話框,設(shè)置此項則自動確認,進行覆蓋,不出現(xiàn)對話框。FOF_NOERRORUI:設(shè)置此項后, 當(dāng)文件處理過程中出現(xiàn)錯誤時, 不出現(xiàn)錯誤提示,否則會進行錯誤提示。FOF_RENAMEONCOLLISION:當(dāng)已存在文件名時,對其進行更換文提示。FOF_SILENT:不顯示進度對話框。FOF_WANTMAPPINGHANDLE:要求SHFileOpera
6、tion()函數(shù)返回正處于操作狀態(tài)的實際文件列表,文件列表名柄保存在hNameMappings成員中。SHFILEOPSTRUCT結(jié)構(gòu)還包含一個SHNAMEMAPPING結(jié)構(gòu)的數(shù)組,此數(shù)組保存由SHELL計算的每個處于操作狀態(tài)的文件的新舊路徑。在使用該函數(shù)刪除文件時必須設(shè)置SHFILEOPSTRUCT結(jié)構(gòu)中的神秘FOF_ALLOWUNDO標(biāo)志,這樣才能將待刪除的文件拷到RecycleBin,從而使用戶可以撤銷刪除操作。需要注意的是,如果pFrom設(shè)置為某個文件名,用FO_DELETE標(biāo)志刪除這個文件并不會將它移到RecycleBin,甚至設(shè)置FOF_ALLOWUNDO標(biāo)志也不行,在這里你必須使
7、用全路徑名,這樣SHFileOperation才會將刪除的文件移到RecycleBin。轉(zhuǎn)自http:/ .wFunc/對pFrompTo要執(zhí)行的操作2 .fFlags影響對wFunx的操作3 .hNameMappings有系統(tǒng)填充,和你也可以填充4.lpszProgressTitlepFrompTo在結(jié)尾是兩個00通常用一個0,這樣會失敗的!當(dāng)FOF_MULTIDESTFILESszPFromlstrlen(szPFrom)+1=0szPFrom:必須先確定他所指定的文件存在!可以是單個文件名,*.*,或包含統(tǒng)配符的文件名注意必須是文件名,不是文件所在的文件夾名szSource:可以是一個目
8、錄,如果不是目錄,但又有多個文件,那么必須和szPFrom的每一個文件對應(yīng),還要指定FOF_MULTIDETFILES標(biāo)志SourceandTarget多個文件-一個文件夾許多單獨的文件-一個文件夾單獨文件-單獨文件許多單獨的文件-許多單獨的文件找家教,到陽光陽光家教網(wǎng)全國最大家教平臺-缶覦老家教網(wǎng)/JH”找家遇到阻光陽光家教網(wǎng)全國最大駕竽臺單獨文件:知道名字的文件多個文件:帶有統(tǒng)配符的文件注意到source中沒有對文件夾的操作!SHFileOperation能操作網(wǎng)絡(luò)上的文件如果你想將本地文件復(fù)制到9那么只要在9上共享123目錄然后將pTo設(shè)置為1
9、9123就可以了但不要設(shè)置為9對hNameMappings操作是Undocumented!如果沒有指定hNameMappings那么hNameMappings一直是NULL只有當(dāng)某種操作(copy,move,rename)引起了文件名沖突了,hNameMappings才不是NULL!當(dāng)?shù)谝淮蝐opy某些文件到空目錄中時hNameMappings一定是NULL所以hNameMappings只是內(nèi)存中的一塊地區(qū)用來讓Explorer.exe保存被重命名的文件,以避免文件名沖突!上面知道了如何才能使hNameMappings有效現(xiàn)在如何使用hNameMapp
10、ings,及其所指的結(jié)構(gòu)大???并取得這個內(nèi)存塊的內(nèi)容呢?hNameMappings是簡單LPVOID無法使用100P要使用hNameMappings,必須定義一個結(jié)構(gòu)體structHANDLETOMAPPINGSUINTuNumberOfMappings;/numberofmappingsinarrayLPSHNAMEMAPPINGlpSHNameMapping;/pointertoarrayofmappings;河龍家教網(wǎng)kJrWTTPs/WlillUJ.yGJJ.CnM/但是可以寫一個EnumeratefunctiontoenumerateIpSHNameMapping指向的內(nèi)存塊,并且是
11、讓W(xué)indow自己調(diào)用我的,不是我主動調(diào)用象Loop相關(guān)聯(lián)接:Q154123:FileNameMappingwithWindowsNT4.0ShellQ133326:SHFILEOPSTRUCTpFromandpToFieldsIncorrectQ142066:PRB:SHGetNameMappingPtr()andSHGetNameMappingCount()ManipulatingFileswiththeSHFileOperationFunctioninVisualBasic4.0FOF_SILENT/不產(chǎn)生正在復(fù)制的對話框FOF_NOCONFIRMMKDIR如果目的目錄不存在,就默認創(chuàng)建
12、FOF_NOCONFIRMATION/不出現(xiàn)確認文件替換對話框(ConfirmationDialog)(默認替換原來的文i件)FOF_NOERRORUI/不出現(xiàn)錯誤對話框最好不要同時使用FOF_NOERRORUI,FOF_NOCONFIRMMKDIR因為FOF_NOCONFIRMMKDIR屏蔽了missingdirectoryError但FOF_NOERROR又屏蔽了missingdirectoryError,那么在同時使用FOF_NOERRORUI,FOF_NOCONFIRMMKDIR時也阻止了新目錄安靜(沒有用戶確認要產(chǎn)生新目錄的對話框)的產(chǎn)生!那么如何同時使用FOF_NOERRORUI,
13、FOF_NOCONFIRMMKDIR?就必須先確認pTo所指定的目錄存在即可BOOLMakeSureDiretoryPathExists(LPCSTRDirPath);使用它要包含imagehlp.h和imagehlp.lib如何判斷同時存在FOF_NOERRORUI,FOF_NOCONFIRMMKDIR因此本人注釋:如果出現(xiàn)彈出無法刪除文件無法:讀取源文件或磁盤文找家教,到陽光陽光家教網(wǎng)全國最大家教平臺-dr麴*家教網(wǎng)/3HTTP六:二匚口山找家教,到陽光陽光家教網(wǎng)全國最大家教平臺可:FOF_NOCONFIRMATION|FOF_NOCONFIRMMKDIR|FOF_NOERRORUIFOF
14、_RENAMEONCOLLISION有重復(fù)文件時自動重命名能產(chǎn)生對話框的標(biāo)志:FOF_SILENT/progressdialogFOF_RENAMEONCOLLISION/replacedialogFOF_NOCONFIRMATION/confirmationdialogFOF_NOCONFIRMMKDIR/asksforyourpermissiontocreateanewfolderFOF_NOERRORUI/errormessageFOF_ALLOWUNDO/將文件放入回收站,否則直接刪除,一般這個最好做默認/百度收索到:1SHFILEOPSTRUCT解與所有僅使用數(shù)據(jù)結(jié)構(gòu)作為輸入?yún)?shù)的函
15、數(shù)一樣,SHFileOperation()函數(shù)是一個相當(dāng)靈活的例程。通過以適當(dāng)?shù)姆绞浇M合各種標(biāo)志,和使用(或不使用)各個SHFILEOPSTRU豺構(gòu)的成員,它可以執(zhí)行許多操作。下面就讓我們來看一看這個結(jié)構(gòu)中每一個成員所起的的作用:Hwnd、陽之家教網(wǎng)由這個函數(shù)生成的所有對話框的父窗口HandleowFunc表示要執(zhí)行的操作pFrom含有源文件名的緩沖pTo含有目標(biāo)文件名的緩沖(不考慮刪除的情況)fFlags能夠影響操作的標(biāo)志fAnyOperationsAborted包含TRU城FALSE勺返回值。它依賴于是否在操作完成之前用戶取消了操作。通過檢測這個成員,你就可以確定操作是正常完成了還是被手動
16、中斷了。hNameMappings資料描述它為包含SHNAMEMAPPING數(shù)組的文件名映射對象的Handle。lpszProgressTitle一個在一定情況下用于顯示對話框標(biāo)題的字符串。抑制的對話框找家教,到陽光陽光家教網(wǎng)全國最大家教平臺相關(guān)性與優(yōu)先級FOF_MULTIDESTFILESNoneNoneFOF_FILESONLYNoneNoneFOF_SILENT如果設(shè)置,進度對話框不顯示FOF_SIMPLEPROGRESSNone為FOF_SILEN標(biāo)志所抑制FOF_RENAMEONCOLLISION如果設(shè)置了這個標(biāo)志,當(dāng)被移動或拷貝的文件與已存在文件同名時置換對話框不會出現(xiàn)。名字沖突時
17、,如果FOF_NOCONFIRMAT檢N設(shè)置,則操作繼續(xù)。如果二者都設(shè)置了, 則它優(yōu)先于FOF_NOCONFIRMATION即, 文件以給定的新名字復(fù)制,而不是覆蓋。FOF_NOCONFIRMATION優(yōu)先于FOF_SIMPLEPROGR如果設(shè)置,確認對話框在任何情況下都不出現(xiàn)名字沖突時,引起文件覆蓋,除非設(shè)置了FOF_RENAMEONCOLLISN。FOF_NOCONFIRMMKDIR抑制請求建立新文件夾的對話框缺省目錄作為嚴重錯誤產(chǎn)生一個錯誤消息框。建立目錄的確認對話框作為錯誤消息框是否顯示依賴于FOF_NOERRORU設(shè)置。FOF_NOERRORUI抑制所有錯誤消息框。優(yōu)先于前一個標(biāo)志。
18、如果設(shè)置,則,缺省目錄引起不被處理的異常,并且返回錯誤碼。FOF_SILENT0 x0004這個操作不回饋給用戶,就是說,不顯示進度對話框。相關(guān)的消息框仍然顯示。FOF_NOCONFIRMATION0 x0010這個標(biāo)志使函數(shù)對任何遇到的消息框都自動回答Yes。匐龍家教網(wǎng)HT找家教,到陽光陽光家教網(wǎng)全國最大家教平臺FOF_ALLOWUNDO0 x0040如果設(shè)置,這個標(biāo)志強迫函數(shù)移動被刪除的文件到回收站中。否則,文件將被物理地從磁盤上刪除。FOF_FILESONLY0 x0080設(shè)置這個標(biāo)志導(dǎo)致函數(shù)僅僅刪除文件,跳過目錄項。它僅僅應(yīng)用于指定通配符的情況。FOF_SIMPLEPROGRESS0 x0100這導(dǎo)致簡化用戶界面。使之只有動畫而不報告被刪除的文件名。代之的是顯示lpszProgressTitle成員中指定的文字。FOF_NOERRORUI0 x0400如果設(shè)置了這個標(biāo)志,任何發(fā)生的錯誤都不能使消息框顯示,而是程序中返回錯誤碼。FOF_SIMPLEPROGREJSFOF_SILE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)和講師合同范例
- 2013合同范本格式
- 《有理數(shù)》教學(xué)反思
- 出租芒果合同范本
- 廠房裝修設(shè)計合同范本
- 北京金店轉(zhuǎn)讓合同范本
- 《天鵝》教學(xué)反思
- 勞務(wù)分包內(nèi)墻合同范本
- 《兒子的魚》閱讀題及答案
- 臺歷采購合同范本
- 冷庫熱氟融霜操作
- 考生個人簡歷及自述表
- 風(fēng)電機組偏航誤差產(chǎn)生機理及調(diào)整策略研究
- 人教版三年級下冊《道德與法治》電子教案
- GB/T 18684-2002鋅鉻涂層技術(shù)條件
- 第九講:信息與大數(shù)據(jù)倫理問題-工程倫理
- 四年級美術(shù)素養(yǎng)附答案
- 2021年全國中學(xué)生天文奧林匹克競賽預(yù)賽試題及答案
- 四年級下冊音樂教案-2.2我們美麗的祖國 |接力版
- Quantum軟件培訓(xùn)手冊
- 服裝市場營銷項目2服裝市場營銷環(huán)境分析課件
評論
0/150
提交評論