【教程17】nge2工具函数-遍历目录



掌叔
2009-05-08 16:42:00

摘自:[url]www.iacger.com[/url]
作者:newcreat

将libnge2更新到r157,可以使用新加的辅助函数dir遍历.

[url]http://www.iacger.com/topoc/download/[/url]

对一个文件夹下的目录及其子目录进行遍历

[code=c]
/**
* 目录遍历访问函数,只支持英文路径和文件名.
* 注意在PSP上全小写的文件名会以全部大写显示.
*@param const char* directory, 待访问目录名
*@param file_travel_cb callback, 访问回调函数
*@param void* user_data,用户参数
*@return int ,返回值0,1
*/
int io_dir_travel(const char* directory, file_travel_cb callback,void* user_data);



实例:注意这里是用的printf。所以请用英文文件名或者目录


#include "libnge2.h"
#include "nge_io_dir.h"

void mycall(dir_desc_p dir_desc,void* data)
{
if(dir_desc!=NULL){
if(dir_desc->flag == FIO_F_FILE)
printf("[FILE]t%sn",dir_desc->name);
else if(dir_desc->flag == FIO_F_DIR){
printf("[DIR ]t%sn",dir_desc->name);
}
}
}


extern "C"
int main(int argc,char* argv[])
{

io_dir_travel(".",mycall,NULL);
nge_sleep(200000);
return 1;
}
[/code]

显示情况(具体与你的目录文件里内容相关):
[FILE] ./Debug/main.obj
[FILE] ./Debug/nge_dir_io.obj
[FILE] ./Debug/test.exe
[FILE] ./Debug/test.ilk
[FILE] ./Debug/test.pch
[FILE] ./Debug/test.pdb
[FILE] ./Debug/vc60.idb
[FILE] ./Debug/vc60.pdb
[DIR ] ./Debug
[FILE] ./EBOOT.PBP
[FILE] ./main.cpp
[FILE] ./main.cpp.bak
[FILE] ./Makefile
[FILE] ./nge_dir_io.c
[FILE] ./nge_dir_io.h
[DIR ] ./Release
[FILE] ./test.dsp
[FILE] ./test.dsw
[FILE] ./test.exe
[FILE] ./test.ncb
[FILE] ./test.opt
[FILE] ./test.plg