循环双链表加目录IO实现简单的文件检索
2012-07-14 12:10
375 查看
#include"stdio.h" #include"stdlib.h" #include"fcntl.h" #include"dirent.h" #include"string.h" typedef struct doublelink { char name[20]; struct doublelink *front; struct doublelink *frev; }dl; dl *head = NULL; dl *last = NULL; void dircreate() { DIR *mydir; struct dirent *myitem; mydir = opendir("."); while( ( myitem = readdir(mydir) ) != NULL ) { if( ( strcmp(myitem->d_name,".") == 0 ) || ( strcmp(myitem->d_name,"..") == 0) ) { continue; } dl *p = (dl *)malloc(sizeof(dl)); if( head == NULL) { strcpy(p->name,myitem->d_name); head = p; head->front = NULL; head->frev = head; last = p; } else { strcpy(p->name,myitem->d_name); last->frev = p; p->front = last; last = p; last->frev = head; } } head->front = last; closedir(mydir); } void print() { dl *p = head; while(p->frev != head) { printf("%s ",p->name); p = p->frev; } printf("%s \n",p->name); } void printfile() { int x; printf("请选择功能\n"); printf("1上一个文件\n"); printf("2下一个文件\n"); printf("3退出\n"); dl *p = head; printf("第一个文件为: %s \n",p->name); while(1) { printf("请输入\n"); scanf("%d",&x); switch(x) { case 1: { p = p->front; printf("上一个文件为: %s \n",p->name); break; } case 2: { p=p->frev; printf("下一个文件为: %s \n",p->name); break; } case 3: { printf("正常退出\n"); exit(0); } } } } int main() { dircreate(); print(); printfile(); return 0; }
相关文章推荐
- 简单数据结构之循环链表(C++实现)
- php最简单的删除目录与文件实现方法
- Java IO 实现简单文件读与写
- 链表的一个简单应用---目录下的文件并排序
- linux ls命令的的简单实现APUE-1.4 文件和目录
- (C语言版)链表(二)——实现单向循环链表创建、插入、删除、释放内存等简单操作
- PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
- (C语言版)链表(四)——实现双向循环链表创建、插入、删除、释放内存等简单操作
- 单向循环链表的简单实现--数据结构学习(二)
- 使用python实现正则匹配检索远端FTP目录下的文件
- 单向循环链表的简单实现
- 文件检索(C循环双链表实现)
- IO读写文件/目录 的简单例子
- C++ 双循环链表简单实现
- 链表实现的简单循环队列
- C语言_利用DOS命令实现的一个简单文件检索
- 一个简单的双向循环链表的实现
- 简单实现双向循环链表
- 1.python实现循环执行目标目录下脚本文件
- PHP简单实现生成txt文件到指定目录的方法