VC++ 使用 _access函數(shù)判斷文件或文件夾是否存在
_access函數(shù)
int _access( const char *path, int mode ); int _waccess( const wchar_t *path, int mode );
參數(shù)
path
文件或目錄路徑。
mode
讀/寫(xiě)特性。
返回值
如果文件包含特定模式,每個(gè)函數(shù)返回 0。 函數(shù)返回 - 1,則名稱(chēng)文件不存在或不具有特定模式;在這種情況下,如下表errno 所示設(shè)置。
EACCES
訪問(wèn)被拒絕:文件權(quán)限的設(shè)置不允許指定的訪問(wèn)權(quán)限。
ENOENT
未找到文件名或路徑。
EINVAL
無(wú)效參數(shù)。
備注
當(dāng)使用文件,_access 函數(shù)確定指定的文件或目錄是否存在并且具有指定值的特性 mode。 在使用與目錄,_access 確定指定的目錄是否存在;只有在 Windows 2000 和更高版本的操作系統(tǒng)上,所有目錄讀取和寫(xiě)入權(quán)限。
| mode 值 |
檢查文件。 |
|---|---|
|
00 |
僅存在 |
|
02 |
Write-only |
|
04 |
只讀 |
|
06 |
讀取和寫(xiě)入 |
最后給大家簡(jiǎn)單匯總下VC++用于判斷文件文件夾是否存在的方法
推薦實(shí)例例:
if(::GetFileAttributes(m_filename)==-1){//文件不存在}else{//文件存在}
1. 使用_access函數(shù),函數(shù)原型為 int _access( const char *path, int mode );
2. 使用CreateFile函數(shù),函數(shù)原型為: HANDLE CreateFile( LPCTSTR lpFileName, // pointer to name of the file DWORD dwDesiredAccess, // access (read-write) mode DWORD dwShareMode, // share mode LPSECURITY_ATTRIBUTES lpSecurityAttributes, // pointer to security attributes DWORD dwCreationDisposition, // how to create DWORD dwFlagsAndAttributes, // file attributes HANDLE hTemplateFile // handle to file with attributes to // copy );
3. 使用FindFirstFile函數(shù),函數(shù)原型為: HANDLE FindFirstFile( LPCTSTR lpFileName, // pointer to name of file to search for LPWIN32_FIND_DATA lpFindFileData // pointer to returned information );
4. 使用GetFileAttributes函數(shù),函數(shù)原型如下: DWORD GetFileAttributes( LPCTSTR lpFileName // pointer to the name of a file or directory );
5. 使用Shell Lightweight Utility APIs函數(shù) PathFileExists()專(zhuān)門(mén)判斷文件和目錄時(shí)否存在的函數(shù)文件名可讀性比較強(qiáng)還可以判斷目錄是否存在 Header: Declared in Shlwapi.h Import Library: Shlwapi.lib 以上的各種方法供參考,函數(shù)具體用法需參見(jiàn)MSDN
相關(guān)文章
C++實(shí)現(xiàn)LeetCode(36.驗(yàn)證數(shù)獨(dú))
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(36.驗(yàn)證數(shù)獨(dú)),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C語(yǔ)言 字符串首字母轉(zhuǎn)換成大寫(xiě)簡(jiǎn)單實(shí)例
這篇文章主要介紹了C語(yǔ)言 字符串首字母轉(zhuǎn)換成大寫(xiě)簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-05-05
C語(yǔ)言中全局變量,局部變量,靜態(tài)局部變量的區(qū)分方式
這篇文章主要介紹了C語(yǔ)言中全局變量,局部變量,靜態(tài)局部變量的區(qū)分方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
C語(yǔ)言入門(mén)篇--sizeof與strlen基礎(chǔ)理論
本篇文章是c語(yǔ)言基礎(chǔ)篇,主要為大家介紹了C語(yǔ)言的sizeof與strlen的基本理論知識(shí),希望可以幫助大家快速入門(mén)c語(yǔ)言的世界,更好的理解c語(yǔ)言2021-08-08
詳解VS2019使用scanf()函數(shù)報(bào)錯(cuò)的解決方法
本文主要介紹了詳解VS2019使用scanf()函數(shù)報(bào)錯(cuò)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
C++類(lèi)和對(duì)象實(shí)戰(zhàn)之Date類(lèi)的實(shí)現(xiàn)方法
C++ 標(biāo)準(zhǔn)庫(kù)沒(méi)有提供所謂的日期類(lèi)型,C++ 繼承了C語(yǔ)言用于日期和時(shí)間操作的結(jié)構(gòu)和函數(shù),這篇文章主要給大家介紹了C++類(lèi)和對(duì)象實(shí)戰(zhàn)之Date類(lèi)的實(shí)現(xiàn)方法,需要的朋友可以參考下2021-12-12

