VC检测文件存在的几种方法

来源:互联网 发布:索尼playmemories软件 编辑:程序博客网 时间:2024/04/28 17:25

方法一:FindFirstFile

view source
print?
1WIN32_FIND_DATA m_data;
2HANDLE hFile;
3hFile=FindFirstFile(filename,&m_data)
4if(hFile==INVALID_HANDLE_VALUE) //file not found
5    //Make sure you close the handle if the file is found.
6    FindClose(hFile);

 

方法二:SHGetFileInfo

函数原型如下:

view source
print?
1DWORD_PTR SHGetFileInfo(
2LPCTSTR pszPath,
3DWORD dwFileAttributes,
4SHFILEINFO *psfi,
5UINT cbFileInfo,
6UINT uFlags
7);

方法三:PathFileExists

 

//请注意:为了使用API函数PathFileExists(),需要加入shlqapi头文件和lib
 

view source
print?
1#include "Shlwapi.h"
2 #pragma comment(lib,"shlwapi.lib")
3 if(PathFileExists(str))
4 {
5  CString strTemp;
6  strTemp.Format("%s已存在!",str);
7  AfxMessageBox(strTemp);
8  return ;
9 }

 

方法四:标准c库函数_access

 

From MSDN

view source
print?
01/* ACCESS.C: This example uses _access to check the
02 * file named "ACCESS.C" to see if it exists and if
03 * writing is allowed.
04 */
05  
06#include  <io.h>
07#include  <stdio.h>
08#include  <stdlib.h>
09  
10void main( void )
11{
12   /* Check for existence */
13   if( (_access( "ACCESS.C", 0 )) != -1 )
14   {
15      printf( "File ACCESS.C exists/n" );
16      /* Check for write permission */
17      if( (_access( "ACCESS.C", 2 )) != -1 )
18         printf( "File ACCESS.C has write permission/n" );
19   }
20}