使用WinAPI类来查找文件

怎样用winapi查找文件本文传自:http://spaces.msn.com/AxGeek/ 
本例中使用到很多Axapta高级技巧,比如函数的嵌套等,值得大家揣摩。

例子中使用到的三个函数解释:

fileExists(_name)    若存在文件,则返回 true
   folderExists(_name)  若存在文件夹或文件,则返回true。
   pathExists(_name)    若存在文件夹,则返回true;

 

static void FindFile(Args _args)
{
    #File
    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;
        int         hdl;
        ;
        setprefix(_prefix);
        if (WinAPI::folderExists(_path))
        {
        [hdl,fileName] = WinApi::findFirstFile(fullFileName(_path,_fileName));
        while (fileName)
        {
            if (WinAPI::fileExists(fullFileName(_path,fileName)))
            info(fileName);
            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');
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值