以树形结构的形式输出指定目录下面的所有文件

 1 /*************************************************************************
 2     > File Name: dir.c
 3     > Author: Roc
 4     > Mail:[email protected]
 5     > Created Time: 2015年09月15日 星期二 18时33分27秒
 6  ************************************************************************/
 7
 8 #include<stdio.h>
 9 #include<unistd.h>
10 #include<dirent.h>
11 #include<string.h>
12 #include<sys/stat.h>
13 #include<stdlib.h>
14
15 void printdir(char *dir, int depth)
16 {
17     DIR *pdir = opendir(dir);//返回一个目录流
18     if(NULL == pdir)
19     {
20         fprintf(stderr,"cannot open directory:%s\n",dir);
21         return;
22     }
23     chdir(dir);//切换到该目录
24     struct dirent *pentry;
25     struct stat statbuf;
26
27     while((pentry = readdir(pdir)) != NULL)
28     {
29         stat(pentry->d_name,&statbuf);
30         if(S_ISDIR(statbuf.st_mode))
31         {
32             if(strcmp(".",pentry->d_name) == 0 || strcmp("..",pentry->d_name) == 0)
33             {
34                 continue;
35             }
36             printf("%*s%s/\n",depth,"",pentry->d_name);
37             printdir(pentry->d_name,depth+4);
38         }
39         else
40             printf("%*s%s\n",depth,"",pentry->d_name);
41     }
42     chdir("..");//返回上一级目录
43     closedir(pdir);
44 }
45
46 int main(int argc, char *argv[])
47 {
48     char *topdir, pwd[2] = ".";
49     if(argc < 2)
50         topdir = pwd;
51     else
52         topdir = argv[1];
53
54     printf("The directory is %s: \n",topdir);
55     printdir(topdir,0);
56     printf("Done!\n");
57     return 0;
58 }
时间: 2024-08-25 01:46:40

以树形结构的形式输出指定目录下面的所有文件的相关文章

JAVA输出指定目录下的子目录和子文件

题目:给定一个目录,要求输出这个目录下面的子目录和子文件 逻辑: 先判断给定的是不是一个合法的目录,如果不是,则提示给定错误 如果是目录,那么使用File.listFile()获得这个目录下文件名的数组 循环遍历输出这个数组元素 输出名称之后,接着判断这个元素是文件还是目录 如果是目录,继续调用本方法来输出子目录 代码如下: /** * 输出指定目录下的所有子目录和子文件 * * @author DXY * */ public class HelloFile { public static vo

33.2 案例:输出指定目录下的所有java文件名(包含子目录)

package day32_file_文件和目录操作; import java.io.File; public class test_输出指定目录下所有的java文件名 { public static void main(String[] args) { File f = new File("src"); method(f); } //输出指定目录下的所有java文件名 private static void method(File f) { if(f.isDirectory()) {

linux复制指定目录下的全部文件到另一个目录中

linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir2.怎样才能将dir1下所有文件复制到dir2下了如果dir2目录不存在,则可以直接使用cp -r dir1 dir2即可.如果dir2目录已存在,则需要使用cp -r dir1/. dir2如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求.ps:di

linux复制指定目录下的全部文件到另一个目录

linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir2.怎样才能将dir1下所有文件复制到dir2下了如果dir2目录不存在,则可以直接使用cp -r dir1 dir2即可.如果dir2目录已存在,则需要使用cp -r dir1/. dir2如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求.ps:di

python之查询指定目录下的最新文件

使用os模块查询指定目录下的最新文件 1 import os 2 3 # 输入目录路径,输出最新文件完整路径 4 def find_new_file(dir): 5 '''查找目录下最新的文件''' 6 file_lists = os.listdir(dir) 7 file_lists.sort(key=lambda fn: os.path.getmtime(dir + "\\" + fn) 8 if not os.path.isdir(dir + "\\" + f

SHELL编程练习-获得指定目录下的所有文件及文件夹的大小

一.目的编写一个脚本,可以获得指定目录下的所有文件及文件夹的大小.输出的样式与 ls -lh 命令相同.命令执行示例,其中和 ls -lh 命令输出的唯一区别是目录的大小:1.1.ls -lh命令的输出(注意目录大小) [[email protected] ~]# ls -lh /root/dir1/ total 24M drwxr-xr-x 3 root root 4.0K Feb 6 13:54 dir2 drwxr-xr-x 2 root root 4.0K Feb 6 13:55 dir

c# 获取指定目录下的所有文件并显示在网页上

参考文献: FileInfo 的使用  https://msdn.microsoft.com/zh-cn/library/system.io.fileinfo_methods(v=vs.110).aspx 网页表格的生成  http://www.w3school.com.cn/html/html_tables.asp C# 通过文件扩展名获取图标和描述 http://www.csframework.com/archive/2/arc-2-20110514-1478.htm   http://ww

javaFile循环列出指定目录下的所有文件(源代码)

package javatest.basic22; import java.io.File; import java.io.IOException; public class FileTest { public void getFileName(File file){ //判断是否是文件 if(file.isFile()){ System.out.println(file.getPath()+file.getName()); }else{ //如果是目录,列出当前目录下所有目录 File[] f

Windows Phone获得IsolatedStorage中指定目录下的所有文件

在Windows Phone 中对隔离存储空间中的文件操作需要通过System.Io.IsolatedStorage下的类进行操作 获得指定文件夹下的所有文件: 参数:是指定文件夹的路径加上通配符,格式:\folder1\* List<string> GetFileNames(string _strFolder) { List<string> returnlst = new List<string>(); using (IsolatedStorageFile stora