findnextfile函数(FindFirstFile和FindNextFile查找文件的顺序问题)
本文目录
- FindFirstFile和FindNextFile查找文件的顺序问题
- c++中findfirstfile函数的使用
- API FindNextFile的具体用法及举例
- findnextfile 如何知道是最后一个文件
- FindFirstFile和FindnextFile配合查找目录下全部文件的问题
- MFC中的CFindFile有个FindNextFile()函数
FindFirstFile和FindNextFile查找文件的顺序问题
具体我也不是很清楚,但是你先用findfiirst再用findnext是可以遍历文件夹下所有的,而且我这边是顺序的,下面是一个实例
#include 《stdio.h》
#include 《io.h》
int main (void)
{
_finddata_t fileDir;
char *dir=“d:\\chn\\*.*“;
long lfDir;
if((lfDir = _findfirst(dir,&fileDir))==-1l)
printf(“No file is found\n“);
else{
printf(“file list:\n“);
do{
printf(“%s\n“,fileDir.name);
}while( _findnext( lfDir, &fileDir ) == 0 );
}
_findclose(lfDir);
return 0;
}
c++中findfirstfile函数的使用
#include “windows.h“
BOOL FileMove(TCHAR *pPath,TCHAR *pToPath);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
FileMove(TEXT(“C:\\Program Files“),TEXT(“C:\\MyFile“));
return 0;
}
BOOL FileMove(TCHAR *pFromPath,TCHAR *pToPath)
{
WIN32_FIND_DATA FindData;
HANDLE hFile;
TCHAR szFilePathName;
TCHAR szFullPathName;
lstrcpy(szFilePathName,pFromPath);
lstrcat(szFilePathName,TEXT(“\\*.*“));
hFile=FindFirstFile(szFilePathName,&FindData);
if(hFile==INVALID_HANDLE_VALUE)
{
return FALSE;
}
while(TRUE)
{
if(FindData.cFileName!=TEXT(’.’))
{
wsprintf(szFullPathName,TEXT(“%s\\%s“),pFromPath,FindData.cFileName);
if(FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
TCHAR szToPath;
wsprintf(szToPath,TEXT(“%s\\%s“),pToPath,FindData.cFileName);
CreateDirectory(szToPath,NULL);
FileMove(szFullPathName,szToPath);
}
else
{
TCHAR szFilePath;
wsprintf(szFilePath,TEXT(“%s\\%s“),pToPath,FindData.cFileName);
CopyFile(szFullPathName,szFilePath,TRUE);
}
}
if(!FindNextFile(hFile,&FindData))
{
break;
}
}
FindClose(hFile);
return TRUE;
}
API FindNextFile的具体用法及举例
/*直接可以编译 你可以修改一下目录 (“E:\\enumfile\\*.*“,注意双杠*/
#include 《windows.h》
void main()
{
WIN32_FIND_DATA FindFileData;
HANDLE FileHandle;
FileHandle=FindFirstFile(“E:\\enumfile\\*.*“,&FindFileData);
puts(FindFileData.cFileName);
while(FileHandle!=INVALID_HANDLE_VALUE)
{
FindNextFile(FileHandle,&FindFileData);
puts(FindFileData.cFileName);
if( GetLastError() == ERROR_NO_MORE_FILES ) break;
}
}
findnextfile 如何知道是最后一个文件
给你一段vc2005帮助里面的代码
#define _WIN32_WINNT 0x0501
#include 《windows.h》
#include 《string.h》
#include 《stdio.h》
int main(int argc, char *argv)
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind = INVALID_HANDLE_VALUE;
char DirSpec[MAX_PATH]; // directory specification
DWORD dwError;
printf (“Target directory is %s.\n“, argv);
strncpy (DirSpec, argv, strlen(argv)+1);
strncat (DirSpec, “\\*“, 3);
hFind = FindFirstFile(DirSpec, &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
printf (“Invalid file handle. Error is %u\n“, GetLastError());
return (-1);
}
else
{
printf (“First file name is %s\n“, FindFileData.cFileName);
while (FindNextFile(hFind, &FindFileData) != 0)
{
printf (“Next file name is %s\n“, FindFileData.cFileName);
}
dwError = GetLastError();
FindClose(hFind);
if (dwError != ERROR_NO_MORE_FILES)
{
printf (“FindNextFile error. Error is %u\n“, dwError);
return (-1);
}
}
return (0);
}
FindFirstFile和FindnextFile配合查找目录下全部文件的问题
典型的用法是:
FILE_INFO info;
HANDLE h=FindFirstFile(“C:\\*.*“,&info);
do
{
...
}while(FindNextFile(h,&info));
CloseHandle(h);
MFC中的CFindFile有个FindNextFile()函数
你是要寻找文件的例子吧
给你个例子
删除文件夹
删除文件夹你在cmd里面删除试试,他会提示文件夹不为空不能删除。意思就是必须先删除文件夹里面的文件再删除文件夹
删除文件夹里面的文件,就要用到寻找所有文件,包括文件夹里面的文件夹(子文件夹)
*************************************************
函数名称:BianLiDel
函数功能:删除目录下所有文件,最后删除文件夹
返回值:成功返回TRUE 失败返回FALSE
************************************************
//以下是宽字节用法
//窄字节替换函数char sprintf strcmp 去掉_T()
//C:\文件夹\WenJianJia\
//这时候会删除WenJianJia这个目录
BOOL BianLiDel(wchar_t *path)
{
wchar_t D_Path[MAX_PATH]={0};
wsprintfW(D_Path,_T(“%s*.*“),path);//在文件名后面加上*.*,输入C:\文件夹\WenJianJia\就会变成C:\文件夹\WenJianJia\*.*
WIN32_FIND_DATA wfd;//定义一个结构体
ZeroMemory(&wfd,sizeof(WIN32_FIND_DATA));//清空结构体
HANDLE fhn = FindFirstFile(D_Path,&wfd);//寻找第一个文件
BOOL bRet = TRUE;//如果第一个文件找到了就进入循环
while (bRet)
{
wchar_t tem[MAX_PATH]={0};
if (wfd.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY&&_wcsicmp(_T(“.“),wfd.cFileName)!=0&&_wcsicmp(_T(“..“),wfd.cFileName)!=0)
{ //判断是否为目录 判断文件夹名字是否为’.’和’..’
wsprintfW(tem,_T(“%s%s\\“),path,wfd.cFileName);
BianLiDel(tem);//是目录就删除目录下的文件
}else{
wsprintfW(tem,_T(“%s%s“),path,wfd.cFileName);
SetFileAttributes(tem,FILE_ATTRIBUTE_NORMAL);
DeleteFile(tem);//不是就删除文件
}
ZeroMemory(&wfd,sizeof(WIN32_FIND_DATA));//清空结构体
bRet = FindNextFile(fhn,&wfd);//寻找下一个文件
}
FindClose(fhn);//如果不关闭会一直提示被占用
return RemoveDirectory(path);//删除目录
}
更多文章:
perl数字处理(使用perl语言,对很大量的数字进行归类)
2024年6月9日 16:51
setupnotice是什么意思(thinkbook装完系统显示setupnotice)
2024年7月19日 18:25
countifs和sum套用(excel countif函数与sumif函数)
2024年7月22日 10:10
representatives怎么读(representative不会读怎么办)
2024年7月23日 09:59
w3cshool display(为什么我对div设置了display:inline;却还是不能让多个div显示在同一行内呢)
2024年7月22日 08:50
for(char c:chars)是什么意思?chars的意思
2024年7月15日 05:09
js特效怎么在vs里打开(jquery 怎么用哦 怎么把它导入到vs中去呢)
2024年8月1日 21:15
c语言decimal类型(c#中decimal数据求绝对值)
2024年7月26日 06:15
differentiated(英语翻译differentiate是个动词吗区分的意思)
2024年6月27日 00:56
hot图标是什么(“淘宝卖的宝贝上面有一个hot标志 是什么意思”是真东西的可能性大吗)
2024年10月5日 04:21
易语言做cf辅助需要什么(易语言做cf辅助需要什么组件大神请回答)
2024年5月17日 07:22