Using X++ Code found out files list

static void Jimmy_FindFilesWinAPI(Args _args)
{
    #File
    int i;

    FileName fullFileName(FileName _path, FileName _fileName)
    {
        FileName pathName;
        FileName fileName;
        FileName fileExtension;
        ;
        [pathName,fileName,fileExtension] = fileNameSplit(_fileName);
        return _path + '\\' + fileName + fileExtension;
    }

    void findFiles( FileName    _path,
                    FileName    _fileName,
                    boolean     _inclSubDir = true,
                    FileName    _prefix     = fullFileName(_path,_fileName))
    {
        FileName    fileName,FullName;
        int         hdl;
        ;
        setprefix(_prefix);
        if (WinAPI::folderExists(_path))
        {
            [hdl,fileName] = WinApi::findFirstFile(fullFileName(_path,_fileName));
            while (fileName)
            {
                FullName = fullFileName(_path,fileName);
                if (WinAPI::fileExists(FullName))
                {
                    i++;
                    info(strfmt("%3 , %1 - %2",FullName,fileName,i));
                }
                fileName = WinApi::findNextFile(hdl);
            }
            WinApi::findClose(hdl);
            if (_inclSubDir)
            {
                [hdl, fileName] = WinAPI::findFirstFile(_path+'\\'+#AllFiles);
                while (fileName)
                {
                    if (strlwr(fileName) != strlwr(_fileName) &&
                    strlwr(fileName) != strlwr('.') &&
                    strlwr(fileName) != strlwr('..') &&
                    WinAPI::pathExists(fullFileName(_path,fileName)))

                    findFiles(fullFileName(_path,fileName), _fileName, _inclSubDir,
                    fileName);
                    fileName = WinApi::findNextFile(hdl);

                }
                WinApi::findClose(hdl);
            }
        }
    }
;
    findFiles('c:\\Program Files','*.doc');
}
原文地址:https://www.cnblogs.com/Fandyx/p/2104491.html