FreeBSD下如何遍历目录及文件?
如题,谢谢! 问题点数: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




