当前位置:  技术问答>linux和unix

急求!取已知目录的文件名和路径的问题(近期结贴)

    来源: 互联网  发布时间:2015-07-25

    本文导语:  想取一个目录下(包含子目录)所有文件的文件名和路径,分别对应存储于数组char *sFileName[]和char *sFilePath[]中,请问该怎么做? 谢谢了 m_( )_m | #include     #include     int ftw (path, fn, dep...

想取一个目录下(包含子目录)所有文件的文件名和路径,分别对应存储于数组char *sFileName[]和char *sFilePath[]中,请问该怎么做?
谢谢了
m_( )_m

|
#include  
  #include  

  int ftw (path, fn, depth)
  char *path;
  int (*fn) ();
  int depth;

  Description
  ===========

  The ftw function recursively descends the directory hierarchy rooted in path.
  For each object in the hierarchy, ftw calls fn, passing it a pointer to a
  null-terminated character string containing the name of the object, a
  pointer to a stat structure (see stat(S)) containing information about the
  object, and an integer. Possible values of the integer, defined in the 
 header file, are:

  FTW_F   file

  FTW_D   directory

  FTW_DNR
          directory that cannot be read

  FTW_NS  object for which stat could not successfully be executed.

这个函数可以得到指定路径下的所有目录的路径以及其访问权限。

|
刚找的,有点乱,凑合看吧
不行的话在google上搜吧,关键词“readdir linux 目录”

-------------------------------------------------------------------------------- 

opendir/readdir/closedir/rewinddir : 读取目录信息 

-------------------------------------------------------------------------------- 

#include  
#include  

DIR * opendir(const char * pathname); 
int closedir(DIR *dir); 
struct dirent * readdir(DIR *dir); 
int rewinddir(DIR *dir); 
struct dirent { 
long d_ino; /* inode number */ 
off_t d_off; /* offset to this dirent */ 
unsigned short d_reclen; /* length of this d_name */ 
char d_name [NAME_MAX+1]; /* file name (null-terminated) */ 
}; 
opendir开启一个目录操作DIR,closedir关闭之。 
readdir则循序读取目录中的资讯,rewinddir则可重新读取目录资讯。 

以下是个标准例。 



-------------------------------------------------------------------------------- 

#include 
#include 
char ** dirGetInfo(const char *pathname) 

char ** filenames; 
DIR * dir; 
struct dirent * ent; 
int n = 0; 

filenames = (char **)malloc(sizeof(char*)); 
filenames[0]=NULL; 

dir = opendir(pathname); 
if (!dir) return filenames; 

while ((ent = readdir(dir))) { 
filenames = (char**)realloc(filenames,sizeof(char*)*(n+1)); 
filenames[n] = strdup(ent->d_name); 
n++; 


closedir(dir); 

filenames = (char **)realloc(filenames,sizeof(char*)*(n+1)); 
filenames[n] = NULL; 

return filenames; 


|
man ftw 
man nftw
看这2个函数

|
up

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何在一个已知的UNIX帐号下破解系统另一个已知帐号的密码??
  • linux下如何编程实现远程开机,已知mac地址
  • 已知一个进程的PID,如何得到其他信息?
  • 请问:如何根据已知数据画直线、矩形等图像,并以图像文件输出!
  • 请问已知进程的PID,通过什么函数可以得到进程的名字?
  • Solaris系统下如何获得进程名(已知进程ID)?
  • 菜菜的问一声,如何找到一个目录,目录名已知
  • 求jsp向对方已知IP传GET方法及参数,并分析返回字符串的例子? iis7站长之家
  • 请问有没有办法方便提取某个已知进程所占用的socket号?谢谢
  • 已知一段文本,在unix怎样查找包含该文本的文件
  • 已知pid文件,实现杀死该进程的shell脚本怎么写?
  • 已知进程名,检测进程是否在运行并调用
  • 『硬盘』求获得硬盘格式和信息的办法,和已知CHS如何进行寻址,求教!
  • 有没有可以从已知图片里过滤出,不规则图片的滤镜??
  • 求jsp向对方已知IP传GET方法及参数,并分析返回字符串的例子?
  • File类的getLastModify()得到的是长型整数,如何才能得到一个已知文件日期?
  • 已知一个进程的PID,但不知道这个进程是否停止,如何能知道系统中是否有相应的进程在运行。
  • 已知a=1,b=2 String string="a+b";如何将string转化为表达式,并计算结果
  • 笨问题----已知今天日期,怎样得到明天日期?
  • 已知manager是employee的子类,那么这么写Employee epy=new Manager()为什么合法?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3