如何取得指定路径下的文件名

nickymaxiao 2007-06-20 10:46:26
编写一个程序,传入路径参数。将这个路径下的文件名取到一个变量数组当中存储。并将取得的文件删除。
例:路径参数为:d:/work,其下边有nnnnnnnnnnn.csv文件多个。如何将这些文件名存到变量当中,然后删除

要完整的程序,不要写部分。我实在不是很懂这个东西
...全文
1399 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
嗷嗷叫的老马 2007-06-21
  • 打赏
  • 举报
回复
汗,哈哈
bygreencn 2007-06-21
  • 打赏
  • 举报
回复
要不我给你整个GUI的对话框得了,老大
星羽 2007-06-20
  • 打赏
  • 举报
回复
我用vc帮你写个吧,等等啊
spofmy 2007-06-20
  • 打赏
  • 举报
回复
顶了
nickymaxiao 2007-06-20
  • 打赏
  • 举报
回复
那要是想在vc下编译这个程序怎么办啊?我没有dev c++
星羽 2007-06-20
  • 打赏
  • 举报
回复
dirent.h vc下没有的

dev c++ 才有
nickymaxiao 2007-06-20
  • 打赏
  • 举报
回复
to jixingzhong(瞌睡虫·星辰):

#include <dirent.h> 这个头文件是哪里来的阿?我在VC下编译时提示

d:\i_work\c++\work.c(1) : fatal error C1083: Cannot open include file: 'dirent.h': No such file or directory
Error executing cl.exe.
jixingzhong 2007-06-20
  • 打赏
  • 举报
回复
if(strcmp(ptr, ".csv"))
==》
if(!strcmp(ptr, ".csv"))
jixingzhong 2007-06-20
  • 打赏
  • 举报
回复
VC 下的话,
使用 _findfirst 和_findnext 遍历指定的目录即可。

后面的文件删除部分还是一样的。
jixingzhong 2007-06-20
  • 打赏
  • 举报
回复
Dev 下:

#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
DIR *directory_pointer;
struct dirent *entry;
struct FileList
{
char filename[64];
struct FileList *next;
}start,*node;

char dir[80];
printf("Input the directory:");
gets(dir);

if ((directory_pointer=opendir(dir))==NULL)
printf("Error opening %s\n",dir);
else
{ //遍历文件夹得到所有文件列表
start.next=NULL;
node=&start;
while ((entry=readdir(directory_pointer))!=NULL)
{
node->next=(struct FileList *)malloc(sizeof(struct FileList));
node=node->next;
strcpy(node->filename,entry->d_name);
node->next=NULL;
}
closedir(directory_pointer);
node=start.next;
node=node->next; // 跳过 . 系统文件
node=node->next; // 跳过 .. 系统文件

while(node)
{
char *ptr=node->filename; //指向文件名
ptr = ptr+(strlen(ptr)-4); //将指针指向 .csv 后缀部分
if(strcmp(ptr, ".csv")) //后缀部分 是.csv,
{ //构造dos命令,调用 system 删除文件
char command[80];
sprintf(command, "del %s", node->filename);
system(command);
}
node=node->next; //下一个文件
}
}
system("PAUSE");
return 0;
}
jixingzhong 2007-06-20
  • 打赏
  • 举报
回复
1 输入路径
2 遍历该路径下所有文件
3 判断各个文件名是否符合删除要求,符合的予以删除
SoftBomb 2007-06-20
  • 打赏
  • 举报
回复
我知道有_findfirst 和_findnext 可以满足你的需要
msdn上就有实例
nickymaxiao 2007-06-20
  • 打赏
  • 举报
回复
没有人愿意帮忙吗?我都快倾家荡产了,还没解决这个问题啊
nickymaxiao 2007-06-20
  • 打赏
  • 举报
回复
我关键不搞这块的。我们头让别人做,结果那家伙转组就扔到我头上了,我短时间内根本就无法找到方向。并不是自己不愿意学,希望大家帮帮忙!
嗷嗷叫的老马 2007-06-20
  • 打赏
  • 举报
回复
呵呵

取得文件名好说,递归调用一下DIR()函数就OK

如LS所说,你自己应该动下脑,这个并不复杂的..

不然你什么也学不到的
ReverseEngineering 2007-06-20
  • 打赏
  • 举报
回复
帮你找找,这样的代码一堆
freshui 2007-06-20
  • 打赏
  • 举报
回复
上来就求完整代码, 不是个好现象
nickymaxiao 2007-06-20
  • 打赏
  • 举报
回复
我已经做出来了。麻烦星羽了,我能不能拜你当师傅啊。呵呵
结贴了
nickymaxiao 2007-06-20
  • 打赏
  • 举报
回复
就是类似于nnnn_20070720.csv这种文件阿什么的,要把日期取出来放到一个char型的里就行了
完了和一个日期比较。
我要去上课了,一会回来来
麻烦你了
星羽 2007-06-20
  • 打赏
  • 举报
回复
什么叫 后八位日期,这个后八位怎么理解

另一个变量比较,这个另一个变量是什么格式啊

Data 里有个文件创建时间.....
加载更多回复(10)

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧