VC 判斷檔案是否存在

來源:互聯網
上載者:User

1. 使用_access函數,函數原型為 int _access( const char *path, int mode );
2. 使用CreateFile函數,函數原型為: 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函數,函數原型為: HANDLE FindFirstFile( LPCTSTR lpFileName, // pointer to name of file to search for LPWIN32_FIND_DATA lpFindFileData // pointer to returned information );
4. 使用GetFileAttributes函數,函數原型如下: DWORD GetFileAttributes( LPCTSTR lpFileName // pointer to the name of a file or directory );
5. 使用Shell Lightweight Utility APIs函數 PathFileExists()專門判斷檔案和目錄時否存在的函數檔案名稱可讀性比較強還可以判斷目錄是否存在 Header: Declared in Shlwapi.h Import Library: Shlwapi.lib 以上的各種方法供參考,函數具體用法需參見MSDN。

方法1:
#include <io.h>
#include <stdio.h>
#include <stdlib.h>

void main( void )
{
   
    if( (_access( "D://a.txt", 0 )) != -1 )
    {
        printf( "File ACCESS.C exists/n" );
       
        if( (_access( "ACCESS.C", 2 )) != -1 )
           printf( "File ACCESS.C has write permission/n" );
     }
}

方法2:
if (INVALID_HANDLE_VALUE != CreateFile("D://a.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL))
{
    AfxMessageBox("File ACCESS.C exists/n");
}

方法3:
#define _WIN32_WINNT 0x0400

#include <windows.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
    WIN32_FIND_DATA FindFileData;
    HANDLE hFind;

    printf ("Target file is %s./n", argv[1]);
    hFind = FindFirstFile(argv[1], &FindFileData);
    if (hFind == INVALID_HANDLE_VALUE)
    {
        printf ("Invalid File Handle. GetLastError reports %d/n", GetLastError ());
        return (0);
    }
    else
    {
        printf ("The first file found is %s/n", FindFileData.cFileName);
        FindClose(hFind);
        return (1);
    }
}

方法4:
if (GetFileAttributes("c://1.txt") == -1)
    MessageBox(0."Invalid File ","hehe",0)
else
    MessageBox(0."The first file found ","haha",0)

方法5:
if (INVALID_HANDLE_VALUE != CreateFile("D://a.txt", 0, 0, NULL, OPEN_EXISTING, 0, NULL))
{
    AfxMessageBox("File exists/n");
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.