UNIX 下想獲取獲取某個(gè)指定目錄下的所有文件名
Posted on 2009-08-04 15:28 Prayer 閱讀(866) 評(píng)論(0) 編輯 收藏 引用 所屬分類: LINUX/UNIX/AIX#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <dirent.h>
DIR *g_directory_pointer;
/*
* 函數(shù)介紹:負(fù)責(zé)列出指定目錄下的文件。
* 輸入?yún)?shù):指定的目錄的路徑
* 輸出參數(shù):
* 返回值 :DIR* 的指針。
* 全局變量:
* 調(diào)用模塊:
* 拋出異常:無(wú)法打開(kāi)目錄時(shí),exit(-1);
*/
int List_Directory_File(char *ch_directory)
{
if ((g_directory_pointer = opendir(ch_directory)) == NULL){//目錄打開(kāi)失敗
printf("Open Directory :%s ERROR\n" , ch_directory);
exit(-1);
}
else{//目錄打開(kāi)成功。
return 1;
}
return -1;
}
void Read()
{
int i ;
char logname[NAME_MAX];
struct dirent* entry;
char temp_dir[255];
//打開(kāi)目錄
List_Directory_File(LOGPATH); //讀取目錄
readdir(g_directory_pointer);//讀'.'
entry = readdir(g_directory_pointer);//讀'..'
while(entry = readdir(g_directory_pointer)){ //目錄非空時(shí),一直做處理
strcpy (temp_dir , LOGPATH);
if (!(log_fp = fopen(strcat(temp_dir , entry->d_name),"r"))){ printf("error\n");
}
else
printf("%s\n", temp_dir);
}
}