CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Linux/Unix社区 >  程序开发区

FreeBSD下如何遍历目录及文件?

楼主wisenowa(最近比较烦)2003-01-11 16:56:52 在 Linux/Unix社区 / 程序开发区 提问

如题,谢谢! 问题点数:100、回复次数:9Top

1 楼dreamesliu(流水)回复于 2003-01-13 18:29:29 得分 10

一般有  
   
  opendir()  
  readdir()  
  fnmatch()  
  closedir()  
   
  不知道FreeBSD有没有这些调用,应该是标准的。Top

2 楼lqh_wh(liqh)回复于 2003-01-14 12:47:58 得分 80

ftw和nftw可以遍历目录,但是FreeBSD不包括这两个函数  
  scandir可以扫描整个目录,但是在hpux上不兼容。Top

3 楼wisenowa(最近比较烦)回复于 2003-01-14 13:33:01 得分 0

谢谢,  
   
  需要那些头文件?  
   
  在FreeBSD下找不到ftw.h怎么办?Top

4 楼lqh_wh(liqh)回复于 2003-01-14 17:38:28 得分 0

ftw和nftw现在只有hpux11支持。  
  如果用scandir,应包括  
  #include   <sys/types.h>  
  #include   <dirent.h>  
  但是这个函数不是一个可以安全移植的函数,我只在solaris7上用过  
  建议你还是自己写一个,或者采用条件编译(#define)Top

5 楼wisenowa(最近比较烦)回复于 2003-01-14 19:47:13 得分 0

thx    
   
  但是自己怎么写呢?对Unix知之甚少:(Top

6 楼lqh_wh(liqh)回复于 2003-01-15 12:44:37 得分 0

你可以看看readdir的帮助,里面有一个很简单的例子Top

7 楼wisenowa(最近比较烦)回复于 2003-01-15 14:00:17 得分 0

to     lqh_wh(liqh)    
  我想请教您另外一个问题,请不要介意  
   
  我的新装的系统Win2000,为什么装上VMWare后,只要运行VMWare显示器就变黑,键盘没有反应,除非重新启动计算机。  
  不知是为什么?  
   
  还望指教,谢谢!  
   
  另外,我有一个小小的请求,能不能把我加为qq好友,我的qq:79628868,  
  我刚接触Unix,想向您学习学习。多谢!Top

8 楼lqh_wh(liqh)回复于 2003-01-15 18:53:11 得分 0

您好,不好意思,我没有用过VMWare,另外我也没有qq号,我不上网聊天(第一个qq也是唯一的一个还是两年前申请的,早忘了)。  
  其实大家是互相学习。我的unix知识是前年参加工作后才逐步积累的,也是菜鸟。我的mail是husthed@sina.com.cn。  
  Top

9 楼wildhorse01(ChinaBCB之雨中漫步)回复于 2003-01-19 13:32:51 得分 10

还是用perl吧,巨简单!要么用shell  
  给你一段perl代码  
  #!/usr/bin/perl   -w  
  use   strict;  
  use   File::Find;  
   
  sub   wanted  
      {  
      if   (-f   $File::Find::name)  
                          {  
                          if   ($File::Find::name=~/\.tds$/i   ||   $File::Find::name=~/\.~.*?$/i)   #   判断文件是.tmp或.bak的就删除  
                                        {  
                                        print   "Removing   $File::Find::name\n";  
                                                  unlink   $File::Find::name;  
                                        }  
                          }  
      }  
  #find(\&wanted,'c:/','d:/','e:/','f:/');   #   查到一个文件就调用wanted函数  
  find(\&wanted,'d:/');Top

相关问题

  • 怎样遍历一个目录下的所有文件?
  • 请问如何遍历某一目录的全部文件。
  • 遍历一个目录下的所有文件?how?
  • 请问如何遍历目录下的所有文件?
  • 如何遍历目录下所有文件
  • 如何遍历光盘里的所有目录及文件?
  • 怎样遍历网络共享目录中的文件
  • DOS下遍历目录,打出文件(头晕中)
  • 如何遍历整个目录树查找文件
  • 如何遍历一个目录中的文件名。

关键词

  • 函数
  • 文件
  • freebsd
  • vmware
  • 学习
  • ftw
  • 目录
  • 谢谢
  • find
  • qq

得分解答快速导航

  • 帖主:wisenowa
  • dreamesliu
  • lqh_wh
  • wildhorse01

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo