目前共有3篇帖子。 字体大小:较小 - 100% (默认)▼  内容转换:不转换▼
 
点击 回复
406 2
【方法】遍历整个目录中的文件和文件夹
一派护法 十九级
1楼 发表于:2016-3-25 22:01
【程序】
// ExploreFolder.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <Windows.h>

#define echo(str) WriteConsole(hConsoleOutput, str, _tcslen(str), NULL, NULL)
#define echo_t(str) echo(TEXT(str))

HANDLE hConsoleOutput;

BOOL explore(LPTSTR szFolder, UINT indent = 0)
{
    TCHAR szFileName[MAX_PATH];
    TCHAR szNextFolder[MAX_PATH];
    _tcscpy_s(szFileName, szFolder);
    _tcscat_s(szFileName, TEXT("\\*"));

    WIN32_FIND_DATA ffd;
    HANDLE hFindFile = FindFirstFile(szFileName, &ffd);
    if (hFindFile == INVALID_HANDLE_VALUE)
        return FALSE;

    UINT i;
    do
    {
        // 忽略.和..
        if (ffd.cFileName[0] == '.')
            continue;

        // 缩进
        i = indent;
        while (i--)
            echo_t("--");

        // 输出文件或文件夹的名称
        echo(ffd.cFileName);
        echo_t("\r\n");

        // 递归遍历子文件夹
        if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
        {
            _tcscpy_s(szNextFolder, szFolder);
            _tcscat_s(szNextFolder, TEXT("\\"));
            _tcscat_s(szNextFolder, ffd.cFileName);
            explore(szNextFolder, indent + 1);
        }
    } while (FindNextFile(hFindFile, &ffd));

    FindClose(hFindFile);
    return TRUE;
}

int _tmain(int argc, _TCHAR* argv[])
{
    hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
    explore(TEXT("C:\\Program Files\\Windows Media Player"));
    return 0;
}


一派护法 十九级
2楼 发表于:2016-3-25 22:01
【输出】
en-US
--mpvis.dll.mui
--setup_wm.exe.mui
--wmlaunch.exe.mui
--WMPDMC.exe.mui
--WMPDMCCore.dll.mui
--wmplayer.exe.mui
--WMPMediaSharing.dll.mui
--wmpnetwk.exe.mui
--wmpnscfg.exe.mui
--wmpnssci.dll.mui
--wmpnssui.dll.mui
--WMPSideShowGadget.exe.mui
es-ES
--mpvis.dll.mui
--setup_wm.exe.mui
--wmlaunch.exe.mui
--WMPDMC.exe.mui
--WMPDMCCore.dll.mui
--wmplayer.exe.mui
--WMPMediaSharing.dll.mui
--wmpnetwk.exe.mui
--wmpnscfg.exe.mui
--wmpnssci.dll.mui
--wmpnssui.dll.mui
--WMPSideShowGadget.exe.mui
Icons
Media Renderer
--avtransport.xml
--connectionmanager_dmr.xml
--DMR_120.jpg
--DMR_120.png
--DMR_48.jpg
--DMR_48.png
--RenderingControl.xml
mpvis.DLL
Network Sharing
--ConnectionManager.xml
--ContentDirectory.xml
--MediaReceiverRegistrar.xml
--wmpnss_bw120.jpg
--wmpnss_bw120.png
--wmpnss_bw32.bmp
--wmpnss_bw32.jpg
--wmpnss_bw48.bmp
--wmpnss_bw48.jpg
--wmpnss_bw48.png
--wmpnss_color120.jpg
--wmpnss_color120.png
--wmpnss_color32.bmp
--wmpnss_color32.jpg
--wmpnss_color48.bmp
--wmpnss_color48.jpg
--wmpnss_color48.png
setup_wm.exe
Skins
--Revert.wmz
Visualizations
wmlaunch.exe
wmpconfig.exe
WMPDMC.exe
WMPDMCCore.dll
wmpenc.exe
wmplayer.exe
WMPMediaSharing.dll
wmpnetwk.exe
wmpnscfg.exe
wmpnssci.dll
WMPNSSUI.dll
wmprph.exe
wmpshare.exe
WMPSideShowGadget.exe
zh-CN
--mpvis.dll.mui
--setup_wm.exe.mui
--wmlaunch.exe.mui
--WMPDMC.exe.mui
--WMPDMCCore.dll.mui
--wmplayer.exe.mui
--WMPMediaSharing.dll.mui
--wmpnetwk.exe.mui
--wmpnscfg.exe.mui
--wmpnssci.dll.mui
--wmpnssui.dll.mui
--WMPSideShowGadget.exe.mui
zh-HK
--wmpnetwk.exe.mui
zh-TW
--mpvis.dll.mui
--setup_wm.exe.mui
--wmlaunch.exe.mui
--WMPDMC.exe.mui
--WMPDMCCore.dll.mui
--wmplayer.exe.mui
--WMPMediaSharing.dll.mui
--wmpnscfg.exe.mui
--wmpnssci.dll.mui
--wmpnssui.dll.mui
--WMPSideShowGadget.exe.mui
Press any key to continue . . .
一派护法 十九级
3楼 发表于:2016-3-26 10:18
【只显示文件夹】
// ExploreFolder.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <Windows.h>

#define echo(str) WriteConsole(hConsoleOutput, str, _tcslen(str), NULL, NULL)
#define echo_t(str) echo(TEXT(str))

HANDLE hConsoleOutput;

BOOL explore(LPTSTR szFolder, UINT indent = 0)
{
    TCHAR szFileName[MAX_PATH];
    TCHAR szNextFolder[MAX_PATH];
    _tcscpy_s(szFileName, szFolder);
    _tcscat_s(szFileName, TEXT("\\*"));

    WIN32_FIND_DATA ffd;
    HANDLE hFindFile = FindFirstFile(szFileName, &ffd);
    if (hFindFile == INVALID_HANDLE_VALUE)
        return FALSE;

    UINT i;
    do
    {
        if (ffd.cFileName[0] == '.')
            continue;
        if (!(ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
            continue;

        // 缩进
        i = indent;
        while (i--)
            echo_t("--");

        // 输出文件或文件夹的名称
        echo(ffd.cFileName);
        echo_t("\r\n");

        // 递归遍历子文件夹
        _tcscpy_s(szNextFolder, szFolder);
        _tcscat_s(szNextFolder, TEXT("\\"));
        _tcscat_s(szNextFolder, ffd.cFileName);
        explore(szNextFolder, indent + 1);
    } while (FindNextFile(hFindFile, &ffd));

    FindClose(hFindFile);
    return TRUE;
}

int _tmain(int argc, _TCHAR* argv[])
{
    hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
    explore(TEXT("C:\\inetpub"));
    return 0;
}
【输出】
AdminScripts
--0404
--0409
--0804
--0C0A
custerr
--en-US
--es-ES
--zh-CN
--zh-TW
ftproot
history
logs
--FailedReqLogFiles
--LogFiles
----W3SVC1
--wmsvc
temp
--appPools
--ASP Compiled Templates
--IIS Temporary Compressed Files
wwwroot
--aspnet_client
----system_web
------2_0_50727
------4_0_30319
--aspx
Press any key to continue . . .

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
(快捷键:Ctrl+Enter)
 

本帖信息

点击数:406 回复数:2
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2016-3-26 10:18
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。