zoukankan      html  css  js  c++  java
  • How to using x++ code achieve Lookup files list with entire folder

    How to using x++ code achieve Lookup files list with entire folder

    Effect as below Image

     

    Wrote by Jimmy xie at 2011-07-19      

    Enjoying... ... (*^__^*) ... ...

    /*
    How to using x++ code achieve Lookup files list with entire folder
    Wrote by Jimmy xie at 2011-07-19
    */
    static void Jimmy_LookupFileFolder(Args _args)
    {
    FilePath initfilePath
    = @"D:\工具";
    FileName initFileName;
    FileName initFullName;
    int i,m;
    int initHandle;
    Dialog dlg
    = new Dialog("");
    DialogField dlgPath
    = dlg.addField(typeid(filepath));

    FileName fullFileName(FileName _path, FileName _fileName)
    {
    FileName _XpathName;
    FileName _XfileName;
    FileName _XfileExtension;
    ;
    [_XpathName,_XfileName,_XfileExtension]
    = fileNameSplit(_fileName);
    return _XpathName + '\\' + _XfileName + _XfileExtension;
    }
    void findFiles(filepath filepath)
    {
    FileName Subfullname;
    int SubHandle;
    FileName SubFileName;

    [SubHandle,SubFileName]
    = WinAPI::findFirstFile(filepath + "\\*.*");

    while (SubFileName != "")
    {
    Subfullname
    = filepath + "\\" + SubFileName;
    if (strlwr(SubFileName) != strlwr('.') &&
    strlwr(SubFileName)
    != strlwr('..') &&
    WinAPI::fileExists(Subfullname,TRUE)
    )
    {
    if(winAPI::folderExists(Subfullname))
    {
    m
    ++;
    setprefix(Subfullname);
    findFiles(Subfullname);
    }
    else
    {
    i
    ++;
    info(strfmt(
    "%1 - %2",i,Subfullname));
    }
    }
    SubFileName
    = WinAPI::findNextFile(SubHandle);
    }

    WinAPI::findClose(SubHandle);
    }
    ;
    dlg.doInit();
    dlgPath.value(initfilePath);
    if(!dlg.run())
    return;
    initfilePath
    = dlgPath.value();
    if(!initfilePath)
    throw error("Please selection the file path!");

    [inithandle,initFileName]
    = WinAPI::findFirstFile(initfilePath + "\\*.*");

    setprefix(initfilePath);
    while (initFileName != "")
    {
    initFullName
    = initfilePath + "\\" + initFileName;
    if (strlwr(initFileName) != strlwr('.') &&
    strlwr(initFileName)
    != strlwr('..') &&
    WinAPI::fileExists(initFullName,TRUE)
    )
    {
    if(winAPI::folderExists(initFullName))
    {
    m
    ++;
    setprefix(initFullName);
    findFiles(initFullName);
    }
    else
    {
    i
    ++;
    info(strfmt(
    "%1 - %2",i,initFileName));
    }
    }
    initFileName
    = WinAPI::findNextFile(initHandle);//must be initHandle, otherwise Function 'FindNextFileW' in DLL library 'KERNEL32' has caused an exception.
    }
    WinAPI::findClose(inithandle);
    info(strfmt(
    "文件 : %1, 子文件夹 : %2",i,m));
    }

  • 相关阅读:
    [算法学习] 单调栈
    UVA11275 3D Triangles(三维几何)
    2019CCSU11月校赛 B,G题解
    2017-2018 ACM-ICPC Northern Eurasia (Northeastern European Regional) Contest (NEERC 17)(B,D)
    2016湖南省省赛 B 有向无环图(树形dp)
    2016湖南省省赛 J 三角形和矩形(计算几何)
    JAVA 高精度小数模板
    2019湖南省赛 K 双向链表练习题(list)
    2019 字节跳动 [编程题]最大映射(贪心)
    HDU 6740 MUV LUV EXTRA(kmp原理)
  • 原文地址:https://www.cnblogs.com/Fandyx/p/2110298.html
Copyright © 2011-2022 走看看