diff --git a/examples/file/listdir.c b/examples/file/listdir.c index 98419db873f9d411fed7487961d2f84d14869bb6..d8ea7af82a5b344406a828a105c2a072854634a2 100644 --- a/examples/file/listdir.c +++ b/examples/file/listdir.c @@ -14,49 +14,50 @@ void list_dir(const char* path) { char * fullpath; - DIR *dir; + DIR *dir; - dir = opendir(path); - if (dir != RT_NULL) - { - struct dirent* dirent; - struct stat s; + dir = opendir(path); + if (dir != RT_NULL) + { + struct dirent* dirent; + struct stat s; - fullpath = rt_malloc(256); - if (fullpath == RT_NULL) - { - rt_kprintf("no memory\n"); - return; - } + fullpath = rt_malloc(256); + if (fullpath == RT_NULL) + { + closedir(dir); + rt_kprintf("no memory\n"); + return; + } - do - { - dirent = readdir(dir); - if (dirent == RT_NULL) break; - rt_memset(&s, 0, sizeof(struct stat)); + do + { + dirent = readdir(dir); + if (dirent == RT_NULL) break; + rt_memset(&s, 0, sizeof(struct stat)); - /* build full path for each file */ - rt_sprintf(fullpath, "%s/%s", path, dirent->d_name); + /* build full path for each file */ + rt_sprintf(fullpath, "%s/%s", path, dirent->d_name); - stat(fullpath, &s); - if ( s.st_mode & S_IFDIR ) - { - rt_kprintf("%s\t\t\n", dirent->d_name); - } - else - { - rt_kprintf("%s\t\t%lu\n", dirent->d_name, s.st_size); - } - } while (dirent != RT_NULL); + stat(fullpath, &s); + if ( s.st_mode & S_IFDIR ) + { + rt_kprintf("%s\t\t\n", dirent->d_name); + } + else + { + rt_kprintf("%s\t\t%lu\n", dirent->d_name, s.st_size); + } + } while (dirent != RT_NULL); - closedir(dir); - } - else - { - rt_kprintf("open %s directory failed\n", path); - } + closedir(dir); + } + else + { + rt_kprintf("open %s directory failed\n", path); + } - rt_free(fullpath); + rt_free(fullpath); } #ifdef RT_USING_FINSH