最新问答 更多

关注我们

关注我们

了解我们的产品和服务,有任何疑问、意见或合作需求,可关注本微博与我们在线沟通。

盒子问答悬赏微博

[单人中标] 遍历当前文件夹

分享任务:
√ 问题已解决
50
发布者 hzxj2005
浏览量
回答数 1

任务详情

怎么根据当前目录获取本地的文件和目录信息
  •   procedure GetChildFilesInfo(pPath: PAnsiChar);
    
    var
    FirstHandle: THandle;
    InvalidHandleNo: Integer;
    FIleCount:Integer;
    DirCount:Integer;
    IsExist: LongBool;
    begin
    InvalidHandleNo := 0;
    FirstHandle := 0;
    StrCat(pPath, '*');
    ZeroMemory(@gFindData, SizeOf(WIN32_FIND_DATA));
    begin
    FirstHandle := FindFirstFile(pPath, gFindData);
    if FirstHandle = INVALID_HANDLE_VALUE then
    showmessage('无效句柄')
    else
    begin
    //同下
    if gFindData.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY then
    //如果是目录,记录
    begin
    StrLCopy(PChar(@DataFilesResult[i].DataFilePath), PChar(@gFindData.cFileName), MAX_PATH);
    Inc(DirCount);
    end
    else
    //如果是文件,详细记录
    begin
    StrLCopy(PChar(@DataFilesResult[i].DataFilePath), PChar(@gFindData.cFileName), MAX_PATH);
    Inc(FileCount);
    end
    end;
    while True do
    begin
    IsExist := FindNextFile(FirstHandle, gFindData);
    if IsExist = False then
    Break
    else
    begin
    begin
    //注意此处,gFindData.dwFileAttributes的值,出现过16,22,32。
    //据windows下的定义,不会出现22才对。只能是2的n此方。。一直郁闷
    //求高人帮忙,或者大家看代码那块不对。
    if gFindData.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY then
    //如果是目录,记录
    begin
    StrLCopy(PChar(@DataFilesResult[i].DataFilePath), PChar(@gFindData.cFileName), MAX_PATH);
    Inc(DirCount);
    end
    else
    //如果是文件,记录
    begin
    StrLCopy(PChar(@DataFilesResult[i].DataFilePath), PChar(@gFindData.cFileName), MAX_PATH);
    Inc(FileCount);
    end
    end;
    end
    end;
    end
    end;

      回答于:2015-11-19 8:32:04      #1楼 奖励火柴:50
    用户头像
刷新 首页 上一页 下一页 末页 页次1/1页 共 1 条记录  转到:
x
您的任务被发布者审核为不合格

原因

详细说明

关于盒子问答
盒子问答为广大程序员提供一个迅速解决问题的好途径,帮助有编程疑惑的程序员轻松发问答。同时授业解惑的人,可以得到相应的收入。帮人解答并赚钱就来盒子问答。
联系我们
我们的服务支持邮件:webmaster@2ccc.com,支持qq:161945
如有建议或意见,可通过右侧“用户反馈”告诉我们
收藏本站
用户反馈