C语言在windows环境下用VC++6.0,输出指定路径下文件目录;
例如输入c:\\a\\(a是文件夹,里面有两个分别叫b和c的子文件夹,b里面有一个b.txt,c里面有一个c.txt)执行后输出c:a\\b\\b.txtc:\\a\\c...
例如输入c:\\a\\(a是文件夹,里面有两个分别叫b和c的子文件夹,b里面有一个b.txt,c里面有一个c.txt)执行后输出c:a\\b\\b.txt c:\\a\\c\\c.txt 最好用可编译的实例说明
展开
4个回答
展开全部
很久没搞过纯C的东西了...如果在VC6环境下,可以试试下面这个函数
(用纯C实现也是这个思路,只不过用的数据结构不同)
//搜索文件及文件夹 参数(目标文件夹,返回的文件列表)
bool CjjjjDlg::getFolderAndFiles(CString path, CStringArray* filelist )
{
//递归查找文件夹内的所有文件.
CFileFind finder;
CString search="" ;
search.Format("%s\\*.*", path);
BOOL bFind=finder.FindFile(search);
if(!bFind)
{
return false;
}
else
{
CString pathb;
while(bFind)
{
bFind=finder.FindNextFile();
if(finder.IsDots())
continue;
pathb=finder.GetFilePath();
if(finder.IsDirectory()) //找到的是目录
{
getFolderAndFiles(pathb,filelist);
continue;
}
else //找到的是文件,则增加到队列
{
filelist->Add(finder.GetFilePath());
}
}
finder.Close();
return true;
}
}
用法:
CStringArray filelist;
getFolderAndFiles("C:\\Ldmis2005",&filelist);
for(int i=0;i<filelist.GetCount();i++)
{
this->MessageBoxA(filelist.GetAt(i));
}
数据在filelist里,可以根据自己想需要使用(这个函数是基于MFC的,纯C下应该不能工作),
另:以后过了12点最好不要发求助消息,本来已经躺下了...
(用纯C实现也是这个思路,只不过用的数据结构不同)
//搜索文件及文件夹 参数(目标文件夹,返回的文件列表)
bool CjjjjDlg::getFolderAndFiles(CString path, CStringArray* filelist )
{
//递归查找文件夹内的所有文件.
CFileFind finder;
CString search="" ;
search.Format("%s\\*.*", path);
BOOL bFind=finder.FindFile(search);
if(!bFind)
{
return false;
}
else
{
CString pathb;
while(bFind)
{
bFind=finder.FindNextFile();
if(finder.IsDots())
continue;
pathb=finder.GetFilePath();
if(finder.IsDirectory()) //找到的是目录
{
getFolderAndFiles(pathb,filelist);
continue;
}
else //找到的是文件,则增加到队列
{
filelist->Add(finder.GetFilePath());
}
}
finder.Close();
return true;
}
}
用法:
CStringArray filelist;
getFolderAndFiles("C:\\Ldmis2005",&filelist);
for(int i=0;i<filelist.GetCount();i++)
{
this->MessageBoxA(filelist.GetAt(i));
}
数据在filelist里,可以根据自己想需要使用(这个函数是基于MFC的,纯C下应该不能工作),
另:以后过了12点最好不要发求助消息,本来已经躺下了...
展开全部
上楼说的有些难了,对于这位朋友和兄弟我来说,mfc还没到那。我就用简单的方法回答吧。
你说的无非是想把自己的数据写在文件里。学c语言的时候应该知道专门的库函数 fprintf
定义一个文件指针 FILE *p;fprintf(p,"数据类型%d等等","数据");路径按照你的问题来说。c:a\\b\\b.txt 和c:\\a\\c\\c.txt 这两个都行。 当然你怎么写,这要看fopen的打开方式了。你可以查查相关的资料。再就是,初学别上来就要代码,自己写最好。就算十次也通不过,你也长了十次的经验。记忆更深刻,别人写的再好,你光看也不如。当然看优秀的代码也是有必要的,我只是提醒别忘了自己写,练习。
你说的无非是想把自己的数据写在文件里。学c语言的时候应该知道专门的库函数 fprintf
定义一个文件指针 FILE *p;fprintf(p,"数据类型%d等等","数据");路径按照你的问题来说。c:a\\b\\b.txt 和c:\\a\\c\\c.txt 这两个都行。 当然你怎么写,这要看fopen的打开方式了。你可以查查相关的资料。再就是,初学别上来就要代码,自己写最好。就算十次也通不过,你也长了十次的经验。记忆更深刻,别人写的再好,你光看也不如。当然看优秀的代码也是有必要的,我只是提醒别忘了自己写,练习。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在《C语言程序设计》一书的文件部分你可以参考一下,那里有你想要的答案!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询