问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VC++如何检测文件是否存在

发布网友 发布时间:2022-04-23 13:51

我来回答

5个回答

热心网友 时间:2022-04-11 20:47

VC++中检测文件是否存在有很多种方法,比较通用的是GetFileAttributes函数,在控制台下增加#include<windows.h>,MFC和其它窗口程序下可以直接使用:

if(GetFileAttributes(FileName)<0)//==-1
{
    //文件不存在!
}
else
    //存在

这种方法是windows下推荐使用的,并可以用于目录(文件夹)的判断(返值为FILE_ATTRIBUTE_DIRECTORY),不会因为文件访问权限等问题造成误判。


此外还有很多判断方法,各有优势和适用范围,需要注意的是,各个方法判断的“文件存在和不存在”可能包括同名目录、用户权限、文件夹不存在或禁止访问等问题,应该根据具体需求使用适合的方法:

CFile::Open或OpenFile,无法以读取方式打开

_access函数,通过判断文件是否能够访问,返回文件是否存在

CFileFind类或FindFirstFile函数。这个也是很不错的方法,不但能够获取比较详细的文件存在信息,还能使用递归搜索子目录。

使用Shell函数SHGetFileInfo判断文件是否存在,这个方法可以获取更完整的文件信息,不仅能判断是否存在,还能直接获取文件的shell信息,方便进一步处理。

热心网友 时间:2022-04-11 22:05

VC++中检测文件是否存在有很多种方法,比较通用的是GetFileAttributes函数,在控制台下增加#include<windows.h>,MFC和其它窗口程序下可以直接使用:
if(GetFileAttributes(FileName)<0)//==-1
{
//文件不存在!
}
else
//存在这种方法是windows下推荐使用的,并可以用于目录(文件夹)的判断(返值为FILE_ATTRIBUTE_DIRECTORY),不会因为文件访问权限等问题造成误判。
此外还有很多判断方法,各有优势和适用范围,需要注意的是,各个方法判断的“文件存在和不存在”可能包括同名目录、用户权限、文件夹不存在或禁止访问等问题,应该根据具体需求使用适合的方法:
1.
CFile::Open或OpenFile,无法以读取方式打开
2.
_access函数,通过判断文件是否能够访问,返回文件是否存在
3.
CFileFind类或FindFirstFile函数。这个也是很不错的方法,不但能够获取比较详细的文件存在信息,还能使用递归搜索子目录。
4.
使用Shell函数SHGetFileInfo判断文件是否存在,这个方法可以获取更完整的文件信息,不仅能判断是否存在,还能直接获取文件的shell信息,方便进一步处理。

热心网友 时间:2022-04-11 23:40

vc++中检测文件是否存在有很多种方法,比较通用的是getfileattributes函数,在控制台下增加#include
,mfc和其它窗口程序下可以直接使用:
if(getfileattributes(filename)<0)//==-1
{
//文件不存在!
}
else
//存在这种方法是windows下推荐使用的,并可以用于目录(文件夹)的判断(返值为file_attribute_directory),不会因为文件访问权限等问题造成误判。
此外还有很多判断方法,各有优势和适用范围,需要注意的是,各个方法判断的“文件存在和不存在”可能包括同名目录、用户权限、文件夹不存在或禁止访问等问题,应该根据具体需求使用适合的方法:
1.
cfile::open或openfile,无法以读取方式打开
2.
_access函数,通过判断文件是否能够访问,返回文件是否存在
3.
cfilefind类或findfirstfile函数。这个也是很不错的方法,不但能够获取比较详细的文件存在信息,还能使用递归搜索子目录。
4.
使用shell函数shgetfileinfo判断文件是否存在,这个方法可以获取更完整的文件信息,不仅能判断是否存在,还能直接获取文件的shell信息,方便进一步处理。

热心网友 时间:2022-04-12 01:31

给你一个函数:
#include <sys/stat.h>
//文件是否存在
bool FileExist(const char* FileName)
{
struct stat my_stat;
return (stat(FileName, &my_stat) == 0);
}

这样调用:
if(FileExist("这里写文件名"))
{
//这里写如果文件存在的处理代码
}

热心网友 时间:2022-04-12 03:39

VC++ 判断文件是否存在的方法有:

1. 使用_access函数,函数原型为:
int _access( const char *path, int mode );

2. 使用CreateFile函数,函数原型为:
HANDLE CreateFile( LPCTSTR lpFileName, //pointer to name of the file DWORD dwDesiredAccess, // access (readwrite) modeDWORD dwShareMode, // share mode LPSECURITY_ATTRIBUTESlpSecurityAttributes, // 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( LPCTSTRlpFileName // pointer to the name of a file or directory );

5. 使用Shell Lightweight Utility APIs函数。
PathFileExists()专门判断文件和目录时否存在的函数文件名可读性比较强还可以判断目录是否存在Header: Declared in Shlwapi.h ,Import Library: Shlwapi.lib 。
方法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");
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 C语言中怎么判断txt(文本文档)中是否存在内容 如何判断文件是否存在 c语言中指定路径怎么检测是否存在 一个文件夹? c中判断一个文件是否已经存在该怎么做?? C# 判断一个目录(路径)是否存在 在C#中如何判断一个文件是否存在?请各位告知下,越详细越好。 c里,怎么判断是否存在某个文件 C语言,判断一个文件是否存在 如果只是用来看电影用什么牌子的具体型号的vr眼镜比较合适,明白人推荐一下谢谢 如果只是用来看电影用什么牌子的具体型号的vr眼镜比较合适,明白人推荐一下谢谢 电脑怎么玩VR游戏?什么牌子的VR眼镜好?哪里买? 电脑怎么玩VR游戏?什么牌子的VR眼镜好?哪里买? 期中考试后家长的评语怎么写 vr眼镜电脑版和vr眼镜手机版,哪个好? vr虚拟现实眼镜哪个好 vr眼镜排行榜品牌推荐 vr虚拟现实眼镜哪个好 vr眼镜排行榜品牌推荐 孩子期中考试成绩好家长评语 家长对孩子考试后的评价与反思怎样写 你好能帮我推荐下哪个3D的vr眼镜好点啊? 谢谢 你好能帮我推荐下哪个3D的vr眼镜好点啊? 谢谢 c语言怎么判定一个文件夹是否有文件?谢谢 已经删除的记录如何恢复聊天记录 微信中删除的聊天记录如何恢复 在清除垃圾中把微信语音照片清理了,怎么恢复 不小心删除了微信,怎么恢复原来的聊天记录 微信聊天记录删除了怎么恢复的真实案列 为什么邀请QQ好友进群,显示邀请失败什么原因呢? 邀请他人加入微信群聊,显示“邀请失败”是怎么回事? 微信建群还没有满人就显示邀请失败怎么回事? 微信邀请他人加入群聊,显示邀请失败是怎么回事啊? 微信群邀请入群总失败,怎么回事儿 我建了一个群,在邀请一些好友进群后,再邀请其他朋友时显示邀请失败是怎么回事? 微信建群,提示邀请失败是怎么回事 为啥我建立qq群邀请其他群的成员入群会失败!详细解说一下 我是建群者.178人时就发送邀请失败 为什么有些QQ群加群申请失败? 邀请qq群新成员为什么失败? 为什么微信邀请别人进群显示邀请失败 我建群拉第一个朋友拉不进去呢,其他人拉他也拉不进去,显示添加联系人失败是怎么回事呢 为什么qq添加群老是请求发送失败?