Shell中關於檔案路徑操作的API函數

來源:互聯網
上載者:User

以前寫代碼時很煩遇到處理檔案路徑的問題.如:提取檔案路徑的目錄部分或者檔案名稱部分、判斷目錄/檔案是否存在等.每次遇到這樣的問題總要自己寫代碼實現,提取目錄就涉及到很繁瑣的字串分析操作,檢測目錄/檔案是否存在都是通過判斷目錄/檔案是否能開啟來實現。水平不夠時,當然寫的越多,隱患BUG就越多.最近翻看網上搜集的一些代碼時發現一些很有用的Shell API能實現我要的部分功能,於是翻看MSDN,才發現自己已經閉門造車了那麼久了.下面簡單地介紹些Shell中關於檔案操作的API函數.

原型:BOOL PathFileExists(  LPCTSTR pszPath );

功能:判斷pszPath指定的目錄/檔案是否存在

 

原型:BOOL PathIsDirectory(  LPCTSTR pszPath );

功能:判斷pszPath指定的路徑是否是目錄

 

原型:BOOL PathIsDirectoryEmpty(  LPCTSTR pszPath );

功能:判斷pszPath指定的目錄是否是空目錄

 

原型:BOOL PathRemoveFileSpec(  LPTSTR pszPath );

功能:移除pszPath指定的路徑末尾的檔案名稱和反斜線部分(如果存在)

樣本:

        TCHAR szPath[] = _T("D:\\玄幻小說\\蠻荒記.pdf");

        if( ::PathRemoveFileSpec( szPath ) )
        {
            //szPath值為: D:\玄幻小說
        }

 

原型:void PathStripPath( LPTSTR pszPath);

功能:移除pszPath指定的路徑的目錄檔案

樣本:

        TCHAR szPath[] = _T("D:\\玄幻小說\\蠻荒記.pdf");

        ::PathStripPath( szPath );
        //szPath值為:蠻荒記.pdf

 

原型:BOOL PathIsRoot(  LPCTSTR pszPath );

功能:判斷pszPath指定的路徑是否是根目錄(即卷標)

 

原型:BOOL PathIsSameRoot( LPCTSTR pszPath1, LPCTSTR pszPath2 );

功能:判斷pszPath1指定的路徑和pszPath2指定的路徑是否在相同的根目錄下

 

原型:BOOL PathStripToRoot( LPTSTR szRoot );

功能:移除szRoot 中除根目錄外的其他目錄

 

原型:LPTSTR PathSkipRoot( LPCTSTR pszPath );

功能:判斷pszPath除根目錄外的其他部分

 

原型:int PathIsExe(  LPCWSTR szfile );  

功能:判斷szfile 指定的檔案是否是可執行檔

 

原型:BOOL PathIsURL( LPCTSTR pszPath );

功能:判斷pszPath指定的路徑是否是URL格式.

 

還有很多這樣的API,哎,我太類了,不弄了.反正以後我需要類似的功能的時候我會首先去查Shell中已經提供的功能,而不再閉門造車了

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.