| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3371 人关注过本帖
标题:如何实现指定文件夹的文件名读取并写入数据库
只看楼主 加入收藏
skkyo
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-8-16
收藏
 问题点数:0 回复次数:2 
如何实现指定文件夹的文件名读取并写入数据库
小弟是初学者,请各位高手指教了:我想把指定文件夹的文件名读出来,然后 把它们存成一个表,字段有文件名,文件类型,文件大小,应该如何实现呢?
  先在这里谢过了……
搜索更多相关主题的帖子: 数据库 文件名 
2008-08-16 10:45
quickburro
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-7-4
收藏
得分:0 
type
   TFileListRecord=record
      SourceName: string;
      SourceType: integer;      {0-文件夹  1-文件}
      DirSearched: boolean;     {文件夹是否已经扫描过,用于获取文件列表的标志}
end;

    ......

    FileCount: integer;                   {复制文件的总数}
    Files: array of TFileListRecord;      {文件列表}

    ......


//
// 获取源文件夹下需要安装的文件的列表...
procedure TForm5.GetFileList;
var
   j: integer;
begin
//
// 初始化文件列表,将顶部文件夹入数组...
   FileCount:=1;
   setlength(Files,filecount);
   files[0].SourceName:=s_DefaultDir+'QuickBurro';
   files[0].SourceType:=0;
   files[0].DirSearched:=false;
//
// 开始扫描每个未被扫描过的文件夹下的文件,直到所有文件夹都被扫描完成...
   j:=GetDirIndex;              {得到一个未被扫描的文件夹的索引号}
   while j>=0 do
      begin
         //
         // 得到该文件夹下的文件列表...
         GetDirFiles(j);
         files[j].DirSearched:=true;     {设置为已扫描}
         //
         // 继续扫描下个文件夹...
         j:=GetDirIndex;        {得到下一个未被扫描的文件夹的索引号}
      end;
end;

//
// 得到一个未被扫描的文件夹的索引号的函数...
function TForm5.GetDirIndex(): integer;
var
   i: integer;
begin
   result:=-1;
   for i:=0 to filecount-1 do
      if (files[i].SourceType=0) and (not files[i].DirSearched) then
         begin
            result:=i;
            break;
         end;
end;

//
// 得到一个文件夹下的文件列表并将它们加入数组的过程...
procedure TForm5.GetDirFiles(aIndex: integer);
var
   sr: TSearchRec;
   j: integer;
begin
//
// 开始查找...
   if FindFirst(files[aIndex].SourceName+'\*.*', faAnyFile, sr) = 0 then
      begin
         //
         // 保存首个...
         if (sr.name<>'.') and (sr.name<>'..') and (sr.Attr<>faVolumeID) then
            begin
               j:=filecount;
               inc(filecount);
               setlength(files,filecount);
               files[j].SourceName:=files[aIndex].SourceName+'\'+sr.name;
               //
               // 假如是目录...
               if sr.Attr=faDirectory then
                  begin
                     files[j].SourceType:=0;
                     files[j].DirSearched:=false;
                  end
               //
               // 假如是文件...
               else
                  begin
                     files[j].SourceType:=1;
                     files[j].DirSearched:=true;
                  end;
            end;
         //
         // 循环查找...
         while FindNext(sr) = 0 do
            begin
               //
               // 保存下个...
               if (sr.name<>'.') and (sr.name<>'..') and (sr.Attr<>faVolumeID) then
                  begin
                     j:=filecount;
                     inc(filecount);
                     setlength(files,filecount);
                     files[j].SourceName:=files[aIndex].SourceName+'\'+sr.name;
                     //
                     // 假如是目录...
                     if sr.Attr=faDirectory then
                        begin
                           files[j].SourceType:=0;
                           files[j].DirSearched:=false;
                        end
                     //
                     // 假如是文件...
                     else
                        begin
                           files[j].SourceType:=1;
                           files[j].DirSearched:=true;
                        end;
                  end;
            end;
         //
         // 结束查找...
         SysUtils.FindClose(sr);
      end;
end;
2008-08-16 10:52
skkyo
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-8-16
收藏
得分:0 
回复 2# quickburro 的帖子
谢谢quickburro!!
2008-08-18 08:58
快速回复:如何实现指定文件夹的文件名读取并写入数据库
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026219 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved