出力ディレクトリトラバーサルlinuxC言語のフォルダとファイル内のファイルと

  • 実験環境のLinuxのミント開発プラットフォームQt5.11
  • 一般的なアイデア、LinuxのCファイルディレクトリ関連の機能ます。mkdirは、rmdirはopendirのreaddir
  • ファイルのディレクトリポインタ型DIR *
  • direntは、属性ファイルタイプd_typeのd_name DT_DIRファイル名またはディレクトリ名は、ファイルディレクトリを表す、関連するシステム・ファイル・ディレクトリ構造を表し、通常のファイルのDT_REG代表
する#include <stdio.hに> 
する#include <STDLIB.H> 
する#include <unistd.h> 
の#include <dirent.h> 
の#include <SYS / types.h>にINT GETDIR(CHAR * パス名)
{ 
    DIR *パス= NULL ; 
    パス = opendirなど(パス名); IF(パス== NULL)
    { 
        perrorは(" 失敗" ;) 終了1 ); 
    } 構造体のdirent * PTR; // ディレクトリ構造---特性:ディレクトリ型d_type、ディレクトリ名d_name のchar bufが[ 1024



    
    
    ] = { 0 }。
    一方、((PTR = READDIR(パス))!= NULL)
    { 
        場合(のstrcmp(ptr-> d_name、" ")== 0 ||のstrcmp(ptr-> d_name、" .. ")== 0 
        { 続け; 
        } // 如果是目录場合(ptr-> d_type == DT_DIR)
        { 
            sprintfの(BUF、" %S /%S "、パス名、ptr-> d_name)。
            printf(" 目录:%sの\ nは" 、bufが)。
            GETDIR(BUF)。
            
        
        

        } 
        場合(Ptr-> == d_type DT_REG)
        { 
            sprintfの(BUF、" %S /%S "、パス名、ptr-> d_name); // 中にスプライシングパス名およびファイル名文字列バッファ 
            のprintf(" ファイル: S%\ N- "BUF); 
        } 
    } 戻り0 ; 
} int型のmain()
{ 
    GETDIR(" /ホーム/ CPC /写真" );
     戻り0 ; 
}
     
 

 

出力:

おすすめ

転載: www.cnblogs.com/saintdingspage/p/12159336.html