当前位置:首页 » 文件管理 » c文件夹所有文件

c文件夹所有文件

发布时间: 2024-11-30 22:34:14

A. c语言如何实现遍历文件夹下的所有txt文件并在文件中搜索字符串

用 FINDFile和FindNextFile可以遍历整个文件夹,然后取出文件名判断是否txt,再打开文件读取内容进行查找。

B. 如何用C语言清空特定文件夹中的所有文件

代码如下,仅供参考。 #include "iostream.h" //由于该博客系统发布是不能显示正常,代码如需调试,只需将改成""即可 #include "string.h" #include "stdlib.h" #include "time.h" #include "math.h" #include "windows.h" #include "stdio.h" #include "shellapi.h" #include "fstream.h" #include "string" using namespace std; void main(){//清空特定文件夹中的所有文件 char* a="."; char* b="";

C. c语言怎么删除一个文件夹里的所有文件

比如说你要删除所有C盘中的文件:
system("del *.*");
del是DOS下的删除命令, *.*这个我不用解释了吧?

D. 怎么知道一个文件夹里所有文件的名字 C

打开它.按类型排列.可以看到它的类型一样的文件.按名字.是从A到Z的顺序.

E. 怎么用c语言实现遍历某目录或文件夹里的所有文件(所有类型

实现遍历目录或文件夹里的所有文件在C语言中并非标准库直接支持的操作。然而,对于不同的操作系统,可以采用不同的方法来实现这一功能。对于Windows系统,可以使用FindFirstFile、FindNextFile和FindClose这三个API来实现遍历动作。具体用法请参考MSDN文档。

以下是使用Visual Studio 2019编译的示例代码,采用了多字节编码(非unicode):

在Linux系统中,可以使用opendir、readdir和closedir这三个API来实现类似功能,具体的API行为请查阅相关文档。以下是一个在Fedora 33环境下使用gcc编译的参考代码,其逻辑与Windows版本类似。

对于Mac系统,由于没有亲身体验,暂无法提供具体实现细节。不过,基于Linux版本的代码,相信在Mac环境中应能顺利运行。

F. C语言:如何得到指定地址的文件夹中所有文件的文件名和其修改时间 包括子文件内的

俺前段时间写了段功能相似的程序,但用的是用C++/STL写的,访问目录使用了win32api(能访问指定目录的子目录)。

获取文件名与修改时间由FileOfDirectory::detectFiles实现(其实你只需要看这一个函数即可)。

这段程序以STL数组保存单个文件名,查询过程中没有回溯,wcsstr函数内部也是KMP,所以事实上这个程序也是按KMP查询的

安时间排序时使用STL算法库,时间复杂度同快速排序。

最后,这段代码是在VS2010编译的。

#include<vector>

#include<algorithm>

structFileNameAndTime

{

wchar_tszPath[MAX_PATH];//filedirectory

wchar_tszName[MAX_PATH];//filename

FILETIMElastAcc;//lastaccesstime

FileNameAndTime()

{

memset(&lastAcc,0,sizeof(lastAcc));

memset(szName,0,sizeof(wchar_t)*MAX_PATH);

memset(szPath,0,sizeof(wchar_t)*MAX_PATH);

}

FileNameAndTime(constPWCHARfn,constPWCHARpa,constLPFILETIMEft)

{

if((0==fn)||(0==pa)||(0==ft))

return;

memcpy(&lastAcc,ft,sizeof(lastAcc));

wcscpy(szName,fn);

wcscpy(szPath,pa);

}

FileNameAndTime(constFileNameAndTime&fnd)

{

memcpy(&this->lastAcc,&fnd.lastAcc,sizeof(this->lastAcc));

wcscpy(this->szName,fnd.szName);

wcscpy(this->szPath,fnd.szPath);

}

constFileNameAndTime&operator=(constFileNameAndTime&fnd)

{

if(this!=&fnd){

memcpy(&this->lastAcc,&fnd.lastAcc,sizeof(this->lastAcc));

wcscpy(this->szName,fnd.szName);

wcscpy(this->szPath,fnd.szPath);

}

return*this;

}

voidGetFullPath(wchar_t(&fp)[MAX_PATH])const

{

wcscpy(fp,szPath);

wcscat(fp,szName);

}

friendbooloperator>(constFileNameAndTime&l,constFileNameAndTime&r);//comparethisobjectbyaccesstime

};

booloperator<(constFileNameAndTime&l,constFileNameAndTime&r)//forsort

{

if(l.lastAcc.dwHighDateTime<r.lastAcc.dwHighDateTime)

returntrue;

elseif(l.lastAcc.dwHighDateTime==r.lastAcc.dwHighDateTime)

{

if(l.lastAcc.dwLowDateTime<r.lastAcc.dwLowDateTime)

returntrue;

}

returnfalse;

}

classFileOfDirectory

{

private:

staticconstwchar_tszDot[];

staticconstwchar_tszDotDot[];

staticconstwchar_tcStar;

staticconstwchar_tcSlash;

private:

std::vector<FileNameAndTime>vecFT;

wchar_tszCurrentPath[MAX_PATH];

private:

voidvalidatePath(constwchar_t*pPath)

{

wcscpy(szCurrentPath,pPath);

intlen=wcslen(szCurrentPath);

if((cStar!=szCurrentPath[len-1])

&&(cSlash!=szCurrentPath[len-2]))

{

szCurrentPath[len]=cSlash;

szCurrentPath[len+1]=cStar;

szCurrentPath[len+2]=0;

return;

}

if((cStar!=szCurrentPath[len-1])

&&(cSlash==szCurrentPath[len-2]))

{

szCurrentPath[len]=cStar;

szCurrentPath[len+1]=0;

return;

}

}

voiddetectFiles(constLPWSTRszDir)

{

WIN32_FIND_DATAffd;

HANDLEhFind=::FindFirstFile(szDir,&ffd);

if(INVALID_HANDLE_VALUE==hFind)

return;

do

{

if(ffd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)

{

if((0==wcscmp(ffd.cFileName,szDot))||(0==wcscmp(ffd.cFileName,szDotDot)))

continue;

else

{

wchar_tszTempPath[MAX_PATH];

wcscpy(szTempPath,szDir);

szTempPath[wcslen(szTempPath)-1]=0;

wcscat(szTempPath,ffd.cFileName);

intlen=wcslen(szTempPath);

szTempPath[len]=cSlash;

szTempPath[len+1]=cStar;

szTempPath[len+2]=0;

detectFiles(szTempPath);

}

}

else{

wchar_tpath[MAX_PATH];

wcscpy(path,szDir);

path[wcslen(path)-1]=0;

vecFT.push_back(FileNameAndTime(ffd.cFileName,path,&ffd.ftLastAccessTime));

}

}

while(::FindNextFile(hFind,&ffd)!=0);

}

public:

FileOfDirectory(constLPWSTRszDir)

{

validatePath(szDir);

detectFiles(szCurrentPath);

}

voidSortByAccessTime()

{

sort(vecFT.begin(),vecFT.end());

}

intNumOfFiles()const{returnvecFT.size();}

intFindFilesByKeyWord(wchar_t*pszFn,int*outCome,intoutComeLen,boolbMatchAll=false)

{

wchar_tszTemp[MAX_PATH],szFnLwr[MAX_PATH];

intindex=0;

wcscpy(szFnLwr,pszFn);

_wcslwr(szFnLwr);

for(inti=0;i<vecFT.size();++i)

{

wcscpy(szTemp,vecFT[i].szName);

_wcslwr(szTemp);

if(true==bMatchAll)

{

if(0==wcscmp(szTemp,szFnLwr))

{

if(index>=outComeLen)

returnindex;

outCome[index++]=i;

}

}

else

{

if(0!=wcsstr(szTemp,szFnLwr))

{

if(index>=outComeLen)

returnindex;

outCome[index++]=i;

}

}

}

}

FileNameAndTimeGetItemByID(intindex)

{

if((index>=0)&&(index<vecFT.size()))

returnFileNameAndTime(vecFT[index]);

}

};

constwchar_tFileOfDirectory::szDot[]=L".";

constwchar_tFileOfDirectory::szDotDot[]=L"..";

constwchar_tFileOfDirectory::cStar=L'*';

constwchar_tFileOfDirectory::cSlash=L'\';

void__stdcallentp3()//测试程序

{

FileOfDirectoryfod(L"E:\game");

intids[256]={0};

fod.SortByAccessTime();

intlen=fod.FindFilesByKeyWord(L"main",ids,256);

for(inti=0;i<len;++i){

FileNameAndTimefnt(fod.GetItemByID(ids[i]));

CDbgString::OutputDbgStringW(L" %s%s",fnt.szPath,fnt.szName);

}

}

测试结果如图所示。

G. C语言怎么读取某一文件夹下的所有文件夹和文件

读取的代码方式如下:

intmain()

{

longfile;

struct_finddata_tfind;

_chdir("d:\");

if((file=_findfirst("*.*",&find))==-1L)

{

printf("空白! ");

exit(0);

}

printf("%s ",find.name);

while(_findnext(file,&find)==0)

{

printf("%s ",find.name);

}

_findclose(file);

return0;

}

热点内容
dede整站源码 发布:2025-01-04 10:31:51 浏览:385
高级英语脚本 发布:2025-01-04 10:30:22 浏览:249
监控网络存储服务器 发布:2025-01-04 10:21:44 浏览:701
照片无损压缩 发布:2025-01-04 10:21:37 浏览:363
qt源码编译环境 发布:2025-01-04 10:20:08 浏览:851
小爱如何破解六个的数字密码 发布:2025-01-04 10:20:00 浏览:21
写地球编程 发布:2025-01-04 10:11:49 浏览:712
gif动图怎么压缩 发布:2025-01-04 10:11:47 浏览:943
自如哪些配置可以带走 发布:2025-01-04 10:11:07 浏览:911
淘宝视频免费上传 发布:2025-01-04 10:10:31 浏览:935