Linux文件访问程序

#代码如下:

#include<stdio.h> 
#include<time.h> 
#include<linux/types.h> 
#include<dirent.h> 
#include<sys/stat.h> 
#include<unistd.h>
#include<string.h>
char *wday[]={"日","一","二","三","四","五","六"}; 
void list(char *name,int suojin) 
{ 
   	 DIR *dirname;    
	 struct dirent *content;  
  	 struct stat sb;    
	 struct tm *ctime;    
	 int i;     
	if((dirname=opendir(name))==NULL) 
    {      
		printf("该目录不存在\n");           
 		return; 
  	} 
   	chdir(name);/*改换工作目录*/    
 	while((content=readdir(dirname))!=NULL) 
    {  
   		for(i=0;i<suojin;i++)         
  			putchar('\t');    
        if(content->d_type==4)
      		printf("目录\t");  
        else if(content->d_type==8)       
            printf("文件\t");     
        else     
      		printf("其他\t");      
        stat(content->d_name,&sb);      
        ctime=gmtime(&sb.st_mtime); 
        printf("%d年%d月%d日 星期%s %d:%d:%d\t",ctime->tm_year+1900,  1+ctime->tm_mon,ctime->tm_mday,wday[ctime->tm_wday],ctime->tm_hour, ctime->tm_min,ctime->tm_sec);  
        printf("%d\t",sb.st_size);  
        printf("%s\n",content->d_name);/*列出目录或文件的相关信息*/  
        if(content->d_type==4&&strcmp(content->d_name,"..")&&strcmp(content->d_name,"."))  
        {     
            list(content->d_name,suojin+1);/*如果是目录,则递归列出目录里的内容*/ 
        } 
	}    
 	closedir(dirname);  
   	chdir("..");/*当该层目录中的文件列完后,返回父目录*/ 
} 
int main(int argc,char *argv[]) 
{   
	char name[256]; 
  	printf("类型\t最后修改时间\t\t\t大小\t文件名\n"); 
  	printf("*******************************************************\n"); 
  	if(argc==1) 
	{     
  	printf("Enter directory name:");  
     	scanf("%s",name);    
   	list(name,0); 
    	} 
  	else 
   	{    
   		list(argv[1],0); 
    } 
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值