- 実験環境の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 ; }
出力: