Win32 路径/目录/PATH/处理相关函数

来源:互联网 发布:算法导论 第一版pdf 编辑:程序博客网 时间:2024/05/16 12:57

头文件:WinBase.h

CreateDirectory、CreateDirectoryEx

功能:创建一个新目录
GetCurrentDirectory

功能: 得到当前目录,并放到缓冲区里
GetDiskFreeSpace、GetDiskFreeSpaceEx

功能: 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
GetDriveType

功能:判断一个磁盘驱动器的类型
GetFullPathName

功能:获取指定文件的完整路径名
GetLogicalDrives

功能:判断系统中存在哪些逻辑驱动器字母
GetLogicalDriveStrings

功能:获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
GetSystemDirectory

功能:这个函数能取得Windows系统目录(System目录)的完整路径名。在这个目录中,包含了所有必要的系统文件。根据微软的标准,其他定制控件和一些共享组件也可放到这个目录。通常应避免在这个目录里创建文件。在网络环境中,往往需要管理员权限才可对这个目录进行写操作 
GetTempPath

功能:获取为临时文件指定的路径
GetVolumeInformation

功能:获取与一个磁盘卷有关的信息
GetWindowsDirectory

功能:这个函数能获取Windows目录的完整路径名。在这个目录里,保存了大多数windows应用程序文件及初始化文件
RemoveDirectory

功能:删除指定目录
SetCurrentDirectory

功能:设置当前目录
SetVolumeLabel

功能:设置一个磁盘的卷标

——其他相关函数用户自行查阅。

 

//通过环境变量获得路径

用户目录:_tgetenv(_T("USERPROFILE"));

 

头文件:ShlObj.h

 

SHGetFolderPath

功能:根据CSIDL_XXX得到Windows的Desktop目录、启动目录、我的文档目录等。(带用户权限的)

例如:TCHAR szPath[MAX_PATH];
    SHGetFolderPath(NULL, CSIDL_PERSONAL|CSIDL_FLAG_CREATE,

   NULL, 0, szPath);=》返回PERSONAL目录到szPath中去

SHGetSpecialFolderPath

功能:根据CSIDL_XXX得到Windows的Desktop目录、启动目录、我的文档目录等。

例如:TCHAR szPath[MAX_PATH];
    SHGetSpecialFolderPath(NULL, szPath, CSIDL_APPDATA, FALSE);=》返回APPDATA目录到szPath中去

SHGetFolderLocation

功能:根据CSIDL_XXX得到ITEMIDLIST表示的目录结构(带用户权限的)

例如:LPITEMIDLIST pidl;

   SHGetFolderLocation(NULL, CSIDL_APPDATA, NULL, 0, &pidl);//用完了pidl记得用IMaloc释放资源

SHGetSpecialFolderLocation

功能:根据CSIDL_XXX得到ITEMIDLIST表示的目录结构

如:LPITEMIDLIST pidl;

   SHGetSpecialFolderLocation(NULL, CSIDL_APPDATA, &pidl);//用完了pidl记得用IMaloc释放资源

——这个头文件里还有其他Shell函数,具体可以自己查阅。


头文件:shlwapi.h
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”

——其他相关函数用户自行查阅。

这是我以前BLOG地址:Win32 路径处理相关函数