首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

如何使system()命令不弹出DOS界面

2012-02-28 
怎么使system()命令不弹出DOS界面还有就是要列出文件夹下面的所有文件 (包括子文件夹下面的文件但不列出子

怎么使system()命令不弹出DOS界面
还有就是要列出文件夹下面的所有文件 (包括子文件夹下面的文件但不列出子文件夹)
dir /b /s>filesist.txt的话会列出子文件夹 我不要子文件夹

[解决办法]

C/C++ code
#include "stdafx.h" #include <windows.h> #define FILEILTER "*.*"BOOL IsRoot(LPCTSTR lpszPath) {     TCHAR szRoot[4];     wsprintf(szRoot, "%c:\\", lpszPath[0]);     return (lstrcmp(szRoot, lpszPath) == 0); } void FindInAll(LPCTSTR lpszPath) {    TCHAR szFind[MAX_PATH];     lstrcpy(szFind, lpszPath);     if (!IsRoot(szFind))         lstrcat(szFind, "\\");     lstrcat(szFind, FILEILTER); // 找所有文件     WIN32_FIND_DATA wfd;     HANDLE hFind = FindFirstFile(szFind, &wfd);     if (hFind == INVALID_HANDLE_VALUE) // 如果没有找到或查找失败         return;         do     {         if (wfd.cFileName[0] == '.')             continue; // 过滤这两个目录         if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)         { //这里对目录进行递归遍历,如果关系目录相关的内容,这里continue即可            TCHAR szFile[MAX_PATH];             if (IsRoot(lpszPath))                 wsprintf(szFile, "%s%s", lpszPath, wfd.cFileName);             else             {                wsprintf(szFile, "%s\\%s", lpszPath, wfd.cFileName);                 FindInAll(szFile); // 如果找到的是目录,则进入此目录进行递归             }        }         else         {             TCHAR szFile[MAX_PATH];             if (IsRoot(lpszPath))             {                wsprintf(szFile, "%s%s", lpszPath, wfd.cFileName);             }            else             {                wsprintf(szFile, "%s\\%s", lpszPath, wfd.cFileName);                 printf("%s\n",szFile);             }            // 对文件进行操作         }     } while (FindNextFile(hFind, &wfd));     FindClose(hFind); // 关闭查找句柄     } int main(int argc, char* argv[]) {     FindInAll("C:\\TEST");     return 0; } 

热点排行