Changeset 97


Ignore:
Timestamp:
Mar 17, 2007, 9:47:54 PM (18 years ago)
Author:
RBRi
Message:

file util fix for the last refactoring

Location:
trunk/NewView
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/NewView/FileDialogForm.pas

    r94 r97  
    596596  ListFilesInDirectory( DirectoryListBox.Directory,
    597597                        FileMask,
     598                        false,
    598599                        Filenames);
    599600
  • trunk/NewView/FileUtilsUnit.pas

    r89 r97  
    5555
    5656  // Breaks up specified Env var path
     57  // this always clears the list at the beginning
    5758  Procedure GetDirsInPath(const aPathEnvVar: String; var aList: TStrings);
    5859
     
    6061  // them to aList
    6162  // it is possible to define different filter if you separate them by semicolon
    62   Procedure ListFilesInDirectory(const aDirectory: String; const aFilter: String; var aList: TStrings);
     63  Procedure ListFilesInDirectory(       const aDirectory : String;
     64                                        const aFilter : String;
     65                                        const aWithDirectoryFlag : boolean;
     66                                        var aList : TStrings);
    6367
    6468  // searches for all directories in aDirectory and add them to aList
     
    6771  Procedure ListFilesInDirectoryRecursiveWithTermination(const aDirectory : String;
    6872                                                         const aFilter : String;
     73                                                         const aWithDirectoryFlag : boolean;
    6974                                                         var aList : TStrings;
    7075                                                         const aTerminateCheck : TTerminateCheck;
     
    352357
    353358
    354   Procedure ListFilesInDirectory(const aDirectory: String; const aFilter: String; var aList: TStrings);
     359  Procedure ListFilesInDirectory(       const aDirectory: String;
     360                                        const aFilter: String;
     361                                        const aWithDirectoryFlag: boolean;
     362                                        var aList: TStrings);
    355363  var
    356364    tmpRC : APIRET;
     
    358366    tmpMask: String;
    359367    tmpFilterParts : TStringList;
     368    tmpDirectory : String;
    360369    i : integer;
    361370  begin
     
    366375    begin
    367376      tmpMask := tmpFilterParts[i];
    368       tmpRC := FindFirst(AddDirectorySeparator(aDirectory) + tmpMask, faAnyFile, tmpSearchResults);
     377      tmpDirectory := AddDirectorySeparator(aDirectory);
     378      tmpRC := FindFirst(tmpDirectory + tmpMask, faAnyFile, tmpSearchResults);
    369379
    370380      while tmpRC = 0 do
     
    372382        if tmpSearchResults.Attr And faDirectory = 0 then
    373383        begin
    374           aList.Add(tmpSearchResults.Name);
     384          if (aWithDirectoryFlag) then
     385          begin
     386            aList.Add(tmpDirectory + tmpSearchResults.Name);
     387          end
     388          else
     389          begin
     390            aList.Add(tmpSearchResults.Name);
     391          end;
    375392        end;
    376393
     
    412429  Procedure ListFilesInDirectoryRecursiveWithTermination(const aDirectory : String;
    413430                                                         const aFilter : String;
     431                                                         const aWithDirectoryFlag : boolean;
    414432                                                         var aList : TStrings;
    415433                                                         const aTerminateCheck : TTerminateCheck;
     
    421439  begin
    422440    // at first add all files from the directory itself
    423     ListFilesInDirectory(aDirectory, aFilter, aList);
     441    ListFilesInDirectory(aDirectory, aFilter, aWithDirectoryFlag, aList);
    424442
    425443    // now determine all subdirectories
     
    436454      tmpSubDirectory := tmpSubDirectories[i];
    437455
    438       ListFilesInDirectoryRecursiveWithTermination(tmpSubDirectory, aFilter, aList, aTerminateCheck, aUseTerminateCheck);
     456      ListFilesInDirectoryRecursiveWithTermination(tmpSubDirectory, aFilter, aWithDirectoryFlag, aList, aTerminateCheck, aUseTerminateCheck);
    439457    end;
    440458    tmpSubDirectories.Destroy;
  • trunk/NewView/unittests/FileUtilsUnitTests.pas

    r89 r97  
    543543    tmpResult := TStringList.Create;
    544544
    545     ListFilesInDirectory('P:\newview_dev', '*.jonas', tmpResult);
    546     ListFilesInDirectory('P:\newview_dev', '*.jonas', tmpResult);
     545    ListFilesInDirectory('P:\newview_dev', '*.jonas', false, tmpResult);
    547546
    548547    assertEqualsInt('testListFilesInDirectory_NoFiles', 0, tmpResult.count);
     
    556555    tmpResult := TStringList.Create;
    557556
    558     ListFilesInDirectory('P:\newview_dev', '', tmpResult);
     557    ListFilesInDirectory('P:\newview_dev', '', false, tmpResult);
    559558
    560559    assertEqualsInt('testListFilesInDirectory_EmptyFilter', 0, tmpResult.count);
     
    570569    tmpResult := TStringList.Create;
    571570
    572     ListFilesInDirectory('P:\newview_dev', '*.txt', tmpResult);
     571    ListFilesInDirectory('P:\newview_dev', '*.txt', false, tmpResult);
    573572
    574573    assertEqualsInt('testListFilesInDirectory_OneFile', 1, tmpResult.count);
     
    585584    tmpResult := TStringList.Create;
    586585
    587     ListFilesInDirectory('P:\newview_dev', '*.*', tmpResult);
     586    ListFilesInDirectory('P:\newview_dev', '*.*', false, tmpResult);
    588587
    589588    assertEqualsInt('testListFilesInDirectory_ManyFiles', 3, tmpResult.count);
     
    602601    tmpResult := TStringList.Create;
    603602
    604     ListFilesInDirectory('P:\newview_dev', '*.txt;*v.cmd', tmpResult);
     603    ListFilesInDirectory('P:\newview_dev', '*.txt;*v.cmd', false, tmpResult);
    605604
    606605    assertEqualsInt('testListFilesInDirectory_ManyFilter', 2, tmpResult.count);
    607606    assertEqualsString('testListFilesInDirectory_ManyFilter', '__readme.txt', tmpResult[0]);
    608607    assertEqualsString('testListFilesInDirectory_ManyFilter', 'env.cmd', tmpResult[1]);
     608
     609    tmpResult.Destroy;
     610  end;
     611
     612
     613  // ----------------------------------------------------------
     614
     615
     616  Procedure testListFilesInDirectoryWithDirectoryInResult_NoFiles;
     617  var
     618    tmpResult : TStringList;
     619  begin
     620    tmpResult := TStringList.Create;
     621
     622    ListFilesInDirectory('P:\newview_dev', '*.jonas', true, tmpResult);
     623
     624    assertEqualsInt('testListFilesInDirectoryWithDirectoryInResult_NoFiles', 0, tmpResult.count);
     625  end;
     626
     627
     628  Procedure testListFilesInDirectoryWithDirectoryInResult_EmptyFilter;
     629  var
     630    tmpResult : TStringList;
     631  begin
     632    tmpResult := TStringList.Create;
     633
     634    ListFilesInDirectory('P:\newview_dev', '', true, tmpResult);
     635
     636    assertEqualsInt('testListFilesInDirectoryWithDirectoryInResult_EmptyFilter', 0, tmpResult.count);
     637
     638    tmpResult.Destroy;
     639  end;
     640
     641
     642  Procedure testListFilesInDirectoryWithDirectoryInResult_OneFile;
     643  var
     644    tmpResult : TStringList;
     645  begin
     646    tmpResult := TStringList.Create;
     647
     648    ListFilesInDirectory('P:\newview_dev', '*.txt', true, tmpResult);
     649
     650    assertEqualsInt('testListFilesInDirectoryWithDirectoryInResult_OneFile', 1, tmpResult.count);
     651    assertEqualsString('testListFilesInDirectoryWithDirectoryInResult_OneFile', 'P:\newview_dev\__readme.txt', tmpResult[0]);
     652
     653    tmpResult.Destroy;
     654  end;
     655
     656
     657  Procedure testListFilesInDirectoryWithDirectoryInResult_ManyFiles;
     658  var
     659    tmpResult : TStringList;
     660  begin
     661    tmpResult := TStringList.Create;
     662
     663    ListFilesInDirectory('P:\newview_dev', '*.*', true, tmpResult);
     664
     665    assertEqualsInt('testListFilesInDirectoryWithDirectoryInResult_ManyFiles', 3, tmpResult.count);
     666    assertEqualsString('testListFilesInDirectoryWithDirectoryInResult_ManyFiles', 'P:\newview_dev\env.cmd', tmpResult[0]);
     667    assertEqualsString('testListFilesInDirectoryWithDirectoryInResult_ManyFiles', 'P:\newview_dev\med.cmd', tmpResult[1]);
     668    assertEqualsString('testListFilesInDirectoryWithDirectoryInResult_ManyFiles', 'P:\newview_dev\__readme.txt', tmpResult[2]);
     669
     670    tmpResult.Destroy;
     671  end;
     672
     673
     674  Procedure testListFilesInDirectoryWithDirectoryInResult_ManyFilter;
     675  var
     676    tmpResult : TStringList;
     677  begin
     678    tmpResult := TStringList.Create;
     679
     680    ListFilesInDirectory('P:\newview_dev', '*.txt;*v.cmd', true, tmpResult);
     681
     682    assertEqualsInt('testListFilesInDirectoryWithDirectoryInResult_ManyFilter', 2, tmpResult.count);
     683    assertEqualsString('testListFilesInDirectoryWithDirectoryInResult_ManyFilter', 'P:\newview_dev\__readme.txt', tmpResult[0]);
     684    assertEqualsString('testListFilesInDirectoryWithDirectoryInResult_ManyFilter', 'P:\newview_dev\env.cmd', tmpResult[1]);
    609685
    610686    tmpResult.Destroy;
     
    648724
    649725
     726  Procedure testListFilesInDirectoryRecursiveWithTerminationWithDirectoryInResult;
     727  var
     728    tmpResult : TStringList;
     729  begin
     730    tmpResult := TStringList.Create;
     731
     732    ListFilesInDirectoryRecursiveWithTermination('P:\newview_dev\i18n', '*.ipf;*.lng', true, tmpResult, nil, false);
     733
     734    assertEqualsInt('testListFilesInDirectoryRecursiveWithTerminationWithDirectoryInResult', 16, tmpResult.count);
     735    assertEqualsString('testListFilesInDirectoryRecursiveWithTerminationWithDirectoryInResult', 'P:\newview_dev\i18n\NewView.ipf', tmpResult[0]);
     736    assertEqualsString('testListFilesInDirectoryRecursiveWithTerminationWithDirectoryInResult', 'P:\newview_dev\i18n\sv\newview_sv.lng', tmpResult[15]);
     737
     738    tmpResult.Destroy;
     739  end;
     740
     741
     742  // ----------------------------------------------------------
     743
     744
    650745  Procedure testListFilesInDirectoryRecursiveWithTermination;
    651746  var
     
    654749    tmpResult := TStringList.Create;
    655750
    656     ListFilesInDirectoryRecursiveWithTermination('P:\newview_dev\i18n', '*.ipf;*.lng', tmpResult, nil, false);
     751    ListFilesInDirectoryRecursiveWithTermination('P:\newview_dev\i18n', '*.ipf;*.lng', false, tmpResult, nil, false);
    657752
    658753    assertEqualsInt('testListFilesInDirectoryRecursiveWithTermination', 16, tmpResult.count);
     
    9201015    result.add(@testListFilesInDirectory_ManyFiles);
    9211016    result.add(@testListFilesInDirectory_ManyFilter);
     1017    result.add(@testListFilesInDirectoryWithDirectoryInResult_NoFiles);
     1018    result.add(@testListFilesInDirectoryWithDirectoryInResult_EmptyFilter);
     1019    result.add(@testListFilesInDirectoryWithDirectoryInResult_OneFile);
     1020    result.add(@testListFilesInDirectoryWithDirectoryInResult_ManyFiles);
     1021    result.add(@testListFilesInDirectoryWithDirectoryInResult_ManyFilter);
    9221022
    9231023    result.add(@testListSubDirectories_None);
     
    9251025
    9261026    result.add(@testListFilesInDirectoryRecursiveWithTermination);
     1027    result.add(@testListFilesInDirectoryRecursiveWithTerminationWithDirectoryInResult);
    9271028
    9281029    result.add(@testParentDir_Empty);
Note: See TracChangeset for help on using the changeset viewer.