手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux中使用glib库函数实现递归获取具有特定扩展名的文件

[日期:2010-10-14] 来源:Linux社区  作者:jinmu190 [字体: ]

#include <glib.h>

int file_filter(gchar *dir_name,gchar * suffix)
{
if(!g_file_test(dir_name,G_FILE_TEST_IS_DIR)||g_file_test(dir_name,G_FILE_TEST_IS_SYMLINK))
{
g_printf("Abandoned!\n");
return 1;
}
GDir *dir;
if(!(dir = g_dir_open(dir_name,0,NULL)))
{
g_printf("Directory Opened Error!\n");
return 1;
}
gchar *abs_path = NULL;
const gchar *filename;
while(filename = g_dir_read_name(dir))
{
abs_path = g_strjoin("/",dir_name,filename,NULL);
if(g_file_test(abs_path,G_FILE_TEST_IS_DIR)&&!g_file_test(abs_path,G_FILE_TEST_IS_SYMLINK))
{
file_filter(abs_path,suffix);
}
else if(!g_file_test(abs_path,G_FILE_TEST_IS_SYMLINK)&&g_str_has_suffix(abs_path,suffix))
{
g_printf("%s\n",abs_path);
}

}
g_dir_close(dir);
g_free(abs_path);
}

int main(int argc,char *argv[])
{
if(argc != 2)
{
g_printf("Parameters Error!\n");
return 1;
}
file_filter(argv[1],"c");
return 0;
}

linux
相关资讯       Linux函数 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款