利用delphi得到某個磁盤或是文件夾的全部子目錄

今天看了一個簡易的文件夾加密軟件,以爲挺有意思。它是利用windows沒法直接訪問某些特殊文件名的文件夾的原理來實現加密的。我想:如要能利用遞歸加循環就能夠把某一個磁盤或是文件夾下的全部文件夾包括子文件夾都加密。也就是讓其沒法打開。固然了這是個惡做劇。
         要想能實現加密全部文件夾包括子文件夾就必須得得到文件夾的目錄列表。我折騰了一下午,終於折騰明白了。
該函數用來得到某個磁盤或是某個文件下全部文件夾
function GetDirList(pPath: String): TStringList;
var
  SearchRec:TSearchRec;
  i:Integer;
  lStringList:TStringList;
  TempPath:string;
begin
  lStringList:=TStringList.Create;
  TempPath:=pPath+'\*.*';
  i:=FindFirst(TempPath,faDirectory,SearchRec);
  while i=0 do
  begin
    if SearchRec.Attr=16 then
    begin
      if (SearchRec.Name<>'.')and(SearchRec.Name<>'..') then
        lStringList.Add(SearchRec.Name);
    end;
    i:= FindNext(SearchRec);
  end;
  FindClose(SearchRec);
  Result:=lStringList;
end;
該函數用來獲得某個磁盤或是文件夾下的全部文件夾包括子文件夾。
function TForm1.GetDirTreeList(pPath: String): TStringList; var   SearchRec:TSearchRec;   i:Integer;   TempStringList,lStringList:TStringList;   TempPath:string; begin   lStringList:=TStringList.Create;   TempPath:=pPath+'\*.*';   i:=FindFirst(TempPath,faDirectory,SearchRec);   while i=0 do   begin     if SearchRec.Attr=16 then     begin       if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then       begin         lStringList.Add(pPath+'\'+SearchRec.Name);         TempStringList:=GetDirTreeList(pPath+'\'+SearchRec.Name);         lStringList.Text:=lStringList.Text+TempStringList.Text;       end;     end;     i:= FindNext(SearchRec);   end;   Result:=lStringList; end; 至於怎麼加密之後在慢慢貼上。不過大致思路就是:加密的時候從內到位,解密的時候從外到內。
相關文章
相關標籤/搜索