日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shlwapi常用的操作路径函数

發布時間:2024/4/11 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shlwapi常用的操作路径函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

shlwapi.dll中的實用API函數發布

在windows?? system目錄下有這個動態鏈接庫

#include?? "shlwapi.h"???
#pragma?? comment(lib,"shlwapi.lib")?


?BOOL PathFileExists(LPCTSTR lpszPath)
功能:檢查文件/路徑是否存在
??
LPTSTR PathFindFileName(LPCTSTR pPath)
功能:獲得路徑中的文件名
例如: PathFindFileName( “c:\\Program Files\\File.txt” ) = “File.txt”。
如果路徑中不包含文件名,則返回值是最下面的目錄名。
??
LPTSTR PathFindExtension(LPCTSTR pPath)
功能:獲取路徑或文件名中的文件擴展名
例如:PathFindExtension( “File.txt” ) = “.txt”
??
LPTSTR PathFindNextComponent(LPCTSTR pszPath)
例如:PathFindNextComponent( “c:\\Program Files\\Directory” ) = “Program Files\\
?? Directory”
???PathFindNextComponent( “c:\\Program Files” ) = “Program Files”
??
BOOL PathFindOnPath( IN OUT LPTSTR?? pszFile , IN LPCTSTR * ppszOtherDirs)
功能:在指定的目錄中尋找文件。
參數:?
pszFile? 要尋找的文件名,確保 pszFile 有足夠的大小來容納 MAX_PATH 個字符。如果能找到指定的文件,該參數將返回文件的全路徑。
ppszOtherDirs?? 該參數是首先要尋找的目錄列表,它可以為NULL,如果為NULL,函數將在系統目錄,當前目錄和由PATH設定的目錄中查找。
??
LPTSTR PathGetArgs(LPCTSTR pszPath)
功能:從路徑中分析參數
例如:LPTSTR pszParam = PathGetArgs( “notepad.exe c:\\temp.txt” )
???????? pszParam 返回 “c:\\temp.txt”
??
int PathGetDriveNumber(LPCTSTR lpsz)
功能:從路徑中分析盤符
返回值:成功返回 0 –25 ,代表(A – Z),失敗返回 –1
?
BOOL PathIsContentType(LPCTSTR pszPath,LPCTSTR pszContentType)
功能:檢查文件是否為指定的ContentType
例如:PathIsContentType( “hello.txt” , “text/plain” ) 返回TRUE
??????  PathIsContentType( “hello.txt” , “image/gif” ) 返回FALSE
?
BOOL PathIsDirectory(LPCTSTR pszPath)
功能:檢查路徑是否為有效目錄。注意路徑不能包含文件名
??
BOOL PathIsFileSpec(LPCTSTR lpszPath)
功能:檢查路徑中是否帶有 ‘:’ 和 ‘\’ 分隔符
??
BOOL PathIsHTMLFile(LPCTSTR pszFile)
功能:檢查是否為HTML文件
??
BOOL PathIsPrefix(IN LPCTSTR? pszPrefix,IN LPCTSTR? pszPath)
功能:檢查路徑是否包含指定前綴,前綴如:”盤符:\\” 、“..\\” 、”.\\”
PathIsPrefix ( “c:\\” , “c:\\hello.txt” ) 返回?????? TRUE
??
BOOL PathIsRelative(LPCTSTR lpszPath)
功能:檢查路徑是否是相對路徑
??
BOOL PathIsRoot(LPCTSTR pPath)
功能:檢查路徑是否是根目錄
??
BOOL PathIsSameRoot(LPCTSTR pszPath1,LPCTSTR pszPath2);
功能:比較兩個路徑是否在同一盤符
??
BOOL PathIsUNC(LPCTSTR pszPath );
功能:判斷路徑是否是UNC格式
??
BOOL PathIsURL(IN LPCTSTR pszPath );
功能:判斷路徑是否是URL
??
BOOL PathMatchSpec( LPCTSTR pszFileParam,LPCTSTR pszSpec)
功能:用帶有通配符(*號和?號)的字符串去比較另一個字符串
例如:PathMatchSpec( “http://news.sina.com.cn” , “*sina.com*” ) 返回TRUE
???????? PathMatchSpec( “c:\\hello.txt” , “*.txt” ) 返回TRUE
??
void PathRemoveArgs(LPTSTR pszPath);
功能:刪除路徑中帶有的參數
??
LPTSTR PathRemoveBackslash(LPTSTR lpszPath);
功能:刪除路徑結尾多余的’\’符號
??
void PathRemoveBlanks(LPTSTR lpszString);
功能:刪除字符串頭尾的空格
??
void PathRemoveExtension( LPTSTR pszPath);
功能:刪除路徑后面的文件擴展名
??
BOOL PathRemoveFileSpec( LPTSTR pszPath);
功能:刪除路徑后面的文件名和’\’符號。該函數可以分析出一個文件的路徑。
例:szPath = “c:\\windows\\system32\\nt.dll” ;
調用PathRemoveFileSpec( szPath ) 后,szPath = “c:\\windows\\system32”?
??
BOOL PathRenameExtension( IN OUT LPTSTR pszPath,LPCTSTR pszExt);
功能:替換路徑后面的文件擴展名,如果pszPath后面不帶擴展名,則新的擴展名會被添加上去。
pszPath? pszPath至少需要MAX_PATH個字符的空間
pszExt??? 新的擴展名,必需包含 . 號
??
void PathStripPath(LPTSTR pszPath );
功能:從路徑中分析出文件名
例: PathStripPath( “c:\\test\\hello.txt” ) => hello.txt
??
BOOL PathStripToRoot( LPTSTR szRoot );
功能:從路徑中分析出盤符
??
void PathUnquoteSpaces( LPTSTR lpsz );
功能:從帶引號的路徑中取出路徑
例:szPath = “\”c:\\Program Files\””?
?????? PathUnquoteSpaces( szPath )? => szPath = “c:\\Program Files”
??
附另一路徑相關函數,由ImageHlp提供
?
BOOL SearchTreeForFile(
? IN LPSTR RootPath,???????
? IN LPSTR InputPathName,??
? OUT LPSTR OutputPathBuffer??
);
功能:從指定目錄樹中尋找文件

?

ExtractFilePath()
  功能:返回完整文件名中的路徑
  函數原型如下:
  AnsiString __fastcall ExtractFilePath;
  ExtractFilePath和相近函數:
  ExtractFileDrive :返回完整文件名中的驅動器,如"C:"?
  ExtractFilePath:返回完整文件名中的路徑,最后帶“/”,如"C:\test\"?
  ExtractFileDir:返回完整文件名中的路徑,最后不帶“/” ,如"C:\test"?
  ExtractFileName:返回完整文件名中的文件名稱 (帶擴展名),如"mytest.doc"?
  ExtractFileExt 返回完整文件名中的文件擴展名(帶.),如".doc"?
  extractfiledir //這個沒有最后的 \?
  extractfilepath //這個最后有 \

ExpandFileName()

======================================

另外附遞歸創建目錄源碼:

#include <shlobj.h> #pragma comment("shell32.lib")void CMFCApplication1Dlg::OnBnClickedOk() {// TODO: 在此添加控件通知處理程序代碼//CDialogEx::OnOK();SHCreateDirectoryEx(NULL, L"D:\\test\\test\\test\\", NULL);}

?

總結

以上是生活随笔為你收集整理的shlwapi常用的操作路径函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。