假设搜索路径已经知道,赋值为strPath,怎样查找是否存在与char ch1中名称相同的文件?函数返回结果是什么?
不用搜索子目录。
第1个回答 2008-03-15
FindFirstFile、FindNextFile、FindClose
第一个函数使用文件名来查找文件,可以支持通配符“*”、“?”,在没有找到文件的时候会返回INVALID_HANDLE_VALUE。
第二个函数接着查找符合条件的文件,成功则直接返回TRUE。
第三个函数结束查找工作,关闭句柄。
详细参数见MSDN
第一个函数使用文件名来查找文件,可以支持通配符“*”、“?”,在没有找到文件的时候会返回INVALID_HANDLE_VALUE。
第二个函数接着查找符合条件的文件,成功则直接返回TRUE。
第三个函数结束查找工作,关闭句柄。
详细参数见MSDN
第2个回答 2008-03-14
调用 CreateFile方法:
HANDLE CreateFile(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile );
把dwCreationDisposition设成OPEN_EXISTING
如果存在返回文件句柄。
失败则返回INVALID_HANDLE_VALUE
HANDLE CreateFile(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile );
把dwCreationDisposition设成OPEN_EXISTING
如果存在返回文件句柄。
失败则返回INVALID_HANDLE_VALUE
第3个回答 2008-03-15
搜索指定文件有专门的API的 这个API需要提供一个文件名而不是通配符
SearchTreeForFile
搜索速度相当快
BOOL SearchTreeForFile(
PSTR RootPath, //根目录 如:C:\
PSTR InputPathName, //文件名 如1.txt
PSTR OutputPathBuffer //存放搜索到的路径
);
SearchTreeForFile
搜索速度相当快
BOOL SearchTreeForFile(
PSTR RootPath, //根目录 如:C:\
PSTR InputPathName, //文件名 如1.txt
PSTR OutputPathBuffer //存放搜索到的路径
);
第4个回答 2008-03-14
FILE *fp = fopen(strPath, "r")
if(fp == NULL)
{
//没有同名文件
}本回答被提问者采纳
if(fp == NULL)
{
//没有同名文件
}本回答被提问者采纳
第5个回答 2008-03-14
GetFileAttributes()获取文件属性,用它的返回值可以判断是否不存在