Changeset 238
- Timestamp:
- Sep 16, 2007, 9:44:46 AM (18 years ago)
- Location:
- trunk
- Files:
-
- 8 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Library/FileUtilsUnit.pas
r235 r238 94 94 95 95 // searches for all directories in aDirectory and add them to aList 96 Procedure ListSubDirectories(const aDirectory: String; var aList: TStrings);96 Procedure ListSubDirectories(const aDirectory: String; const anIncludeSystemAndHiddenFlag: boolean; var aList: TStrings); 97 97 98 98 Procedure ListFilesInDirectoryRecursiveWithTermination(const aDirectory : String; 99 99 const aFilter : String; 100 100 const aWithDirectoryFlag : boolean; 101 const anIncludeSystemAndHiddenFlag: boolean; 101 102 var aList : TStrings; 102 103 const aTerminateCheck : TTerminateCheck; … … 112 113 113 114 114 115 // Checks if a directory exists 115 116 Function DirectoryExists(const aDirectory : String) : boolean; 116 117 … … 502 503 503 504 504 Procedure ListSubDirectories(const aDirectory: String; var aList: TStrings);505 Procedure ListSubDirectories(const aDirectory: String; const anIncludeSystemAndHiddenFlag: boolean; var aList: TStrings); 505 506 var 506 507 tmpRC : APIRET; 507 508 tmpSearchResults: TSearchRec; 508 509 tmpName : String; 509 begin 510 511 tmpRC := FindFirst(AddDirectorySeparator(aDirectory) + '*', faDirectory or faMustDirectory, tmpSearchResults); 510 tmpFileAttributes : ULONG; 511 begin 512 513 if anIncludeSystemAndHiddenFlag then 514 begin 515 tmpFileAttributes := faArchive or faReadonly or faHidden or faSysFile or faDirectory or faMustDirectory; 516 end 517 else 518 begin 519 tmpFileAttributes := faArchive or faReadonly or faDirectory or faMustDirectory; 520 end; 521 522 tmpRC := FindFirst(AddDirectorySeparator(aDirectory) + '*', tmpFileAttributes, tmpSearchResults); 512 523 if (tmpRC <> 0) then 513 524 begin … … 531 542 const aFilter : String; 532 543 const aWithDirectoryFlag : boolean; 544 const anIncludeSystemAndHiddenFlag: boolean; 533 545 var aList : TStrings; 534 546 const aTerminateCheck : TTerminateCheck; … … 544 556 // now determine all subdirectories 545 557 tmpSubDirectories := TStringList.Create; 546 ListSubDirectories(aDirectory, tmpSubDirectories);558 ListSubDirectories(aDirectory, anIncludeSystemAndHiddenFlag, tmpSubDirectories); 547 559 548 560 for i := 0 to tmpSubDirectories.Count - 1 do … … 555 567 tmpSubDirectory := tmpSubDirectories[i]; 556 568 557 ListFilesInDirectoryRecursiveWithTermination(tmpSubDirectory, aFilter, aWithDirectoryFlag, aList, aTerminateCheck, aUseTerminateCheck); 569 ListFilesInDirectoryRecursiveWithTermination( tmpSubDirectory, 570 aFilter, 571 aWithDirectoryFlag, 572 anIncludeSystemAndHiddenFlag, 573 aList, 574 aTerminateCheck, 575 aUseTerminateCheck); 558 576 end; 559 577 tmpSubDirectories.Destroy; … … 653 671 end; 654 672 655 tmpRC := FindFirst(tmpDirectory, faDirectory or faMustDirectory, tmpSearchResults); 673 tmpRC := FindFirst( tmpDirectory, 674 faArchive or faReadonly or faHidden or faSysFile or faDirectory or faMustDirectory, 675 tmpSearchResults); 656 676 if tmpRC = 0 then 657 677 begin -
trunk/unittests/FileUtilsUnitTests.pas
r224 r238 711 711 tmpResult := TStringList.Create; 712 712 713 ListSubDirectories(TEST_PATH + '\unittests\testdir\subdir1', tmpResult);713 ListSubDirectories(TEST_PATH + '\unittests\testdir\subdir1', false, tmpResult); 714 714 715 715 assertEqualsInt('testListSubDirectories_None', 0, tmpResult.count); … … 719 719 720 720 721 Procedure testListSubDirectories_NoneWithHidden; 722 var 723 tmpResult : TStringList; 724 begin 725 tmpResult := TStringList.Create; 726 727 ListSubDirectories(TEST_PATH + '\unittests\testdir\subdir1', true, tmpResult); 728 729 assertEqualsInt('testListSubDirectories_NoneWithHidden', 1, tmpResult.count); 730 assertEqualsString('testListSubDirectories_NoneWithHidden', TEST_PATH + '\unittests\testdir\subdir1\.svn', tmpResult[0]); 731 732 tmpResult.Destroy; 733 end; 734 735 721 736 Procedure testListSubDirectories_Many; 722 737 var … … 725 740 tmpResult := TStringList.Create; 726 741 727 ListSubDirectories(TEST_PATH + '\unittests\testdir', tmpResult); 728 729 assertEqualsInt('testListSubDirectories_Many', 1, tmpResult.count); 730 assertEqualsString('testListSubDirectories_Many', TEST_PATH + '\unittests\testdir\subdir1', tmpResult[0]); 731 732 tmpResult.Destroy; 733 end; 734 735 736 // ---------------------------------------------------------- 737 738 739 Procedure testListFilesInDirectoryRecursiveWithTerminationWithDirectoryInResult; 740 var 741 tmpResult : TStringList; 742 begin 743 tmpResult := TStringList.Create; 744 745 ListFilesInDirectoryRecursiveWithTermination(TEST_PATH + '\unittests\testdir', '*.ex1;ex2', true, tmpResult, nil, false); 742 ListSubDirectories(TEST_PATH + '\unittests\testdir', false, tmpResult); 743 744 assertEqualsInt('testListSubDirectories_Many', 3, tmpResult.count); 745 assertEqualsString('testListSubDirectories_Many', TEST_PATH + '\unittests\testdir\dir_archived', tmpResult[0]); 746 assertEqualsString('testListSubDirectories_Many', TEST_PATH + '\unittests\testdir\dir_readonly', tmpResult[1]); 747 assertEqualsString('testListSubDirectories_Many', TEST_PATH + '\unittests\testdir\subdir1', tmpResult[2]); 748 749 tmpResult.Destroy; 750 end; 751 752 753 Procedure testListSubDirectories_ManyWithHidden; 754 var 755 tmpResult : TStringList; 756 begin 757 tmpResult := TStringList.Create; 758 759 ListSubDirectories(TEST_PATH + '\unittests\testdir', true, tmpResult); 760 761 assertEqualsInt('testListSubDirectories_ManyWithHidden', 6, tmpResult.count); 762 assertEqualsString('testListSubDirectories_ManyWithHidden', TEST_PATH + '\unittests\testdir\.svn', tmpResult[0]); 763 assertEqualsString('testListSubDirectories_ManyWithHidden', TEST_PATH + '\unittests\testdir\dir_archived', tmpResult[1]); 764 assertEqualsString('testListSubDirectories_ManyWithHidden', TEST_PATH + '\unittests\testdir\dir_hidden', tmpResult[2]); 765 assertEqualsString('testListSubDirectories_ManyWithHidden', TEST_PATH + '\unittests\testdir\dir_readonly', tmpResult[3]); 766 assertEqualsString('testListSubDirectories_ManyWithHidden', TEST_PATH + '\unittests\testdir\dir_system', tmpResult[4]); 767 assertEqualsString('testListSubDirectories_ManyWithHidden', TEST_PATH + '\unittests\testdir\subdir1', tmpResult[5]); 768 769 tmpResult.Destroy; 770 end; 771 772 773 // ---------------------------------------------------------- 774 775 776 Procedure testListFilesInDirectoryRecursiveWithTermination; 777 var 778 tmpResult : TStringList; 779 begin 780 tmpResult := TStringList.Create; 781 782 ListFilesInDirectoryRecursiveWithTermination(TEST_PATH + '\unittests\testdir', '*.ex1;ex2;file_in_*', false, false, tmpResult, nil, false); 783 784 assertEqualsInt('testListFilesInDirectoryRecursiveWithTermination', 5, tmpResult.count); 785 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination 0', 'file1.ex1', tmpResult[0]); 786 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination 1', 'file2.ex1', tmpResult[1]); 787 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination 2', 'file_in_archived', tmpResult[2]); 788 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination 3', 'file_in_readonly', tmpResult[3]); 789 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination 4', 'file1.ex1', tmpResult[4]); 790 791 tmpResult.Destroy; 792 end; 793 794 795 Procedure testListFilesInDirectoryRecursiveWithTermination_WithHidden; 796 var 797 tmpResult : TStringList; 798 begin 799 tmpResult := TStringList.Create; 800 801 ListFilesInDirectoryRecursiveWithTermination(TEST_PATH + '\unittests\testdir', '*.ex1;ex2;file_in_*', false, true, tmpResult, nil, false); 802 803 assertEqualsInt('testListFilesInDirectoryRecursiveWithTermination_WithHidden', 7, tmpResult.count); 804 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination_WithHidden 0', 'file1.ex1', tmpResult[0]); 805 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination_WithHidden 1', 'file2.ex1', tmpResult[1]); 806 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination_WithHidden 2', 'file_in_archived', tmpResult[2]); 807 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination_WithHidden 3', 'file_in_hidden', tmpResult[3]); 808 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination_WithHidden 4', 'file_in_readonly', tmpResult[4]); 809 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination_WithHidden 5', 'file_in_system', tmpResult[5]); 810 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination_WithHidden 6', 'file1.ex1', tmpResult[6]); 811 812 tmpResult.Destroy; 813 end; 814 815 816 Procedure testListFilesInDirectoryRecursiveWithTermination_WithDirectoryInResult; 817 var 818 tmpResult : TStringList; 819 begin 820 tmpResult := TStringList.Create; 821 822 ListFilesInDirectoryRecursiveWithTermination(TEST_PATH + '\unittests\testdir', '*.ex1;ex2', true, false, tmpResult, nil, false); 746 823 747 824 assertEqualsInt('testListFilesInDirectoryRecursiveWithTerminationWithDirectoryInResult', 3, tmpResult.count); … … 754 831 755 832 756 // ---------------------------------------------------------- 757 758 759 Procedure testListFilesInDirectoryRecursiveWithTermination; 760 var 761 tmpResult : TStringList; 762 begin 763 tmpResult := TStringList.Create; 764 765 ListFilesInDirectoryRecursiveWithTermination(TEST_PATH + '\unittests\testdir', '*.ex1;ex2', false, tmpResult, nil, false); 766 767 assertEqualsInt('testListFilesInDirectoryRecursiveWithTermination', 3, tmpResult.count); 768 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination', 'file1.ex1', tmpResult[0]); 769 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination', 'file2.ex1', tmpResult[1]); 770 assertEqualsString('testListFilesInDirectoryRecursiveWithTermination', 'file1.ex1', tmpResult[2]); 833 Procedure testListFilesInDirectoryRecursiveWithTermination_1WithDirectoryInResultWithHidden; 834 var 835 tmpResult : TStringList; 836 begin 837 tmpResult := TStringList.Create; 838 839 ListFilesInDirectoryRecursiveWithTermination(TEST_PATH + '\unittests\testdir', '*.ex1;ex2', true, true, tmpResult, nil, false); 840 841 assertEqualsInt('testListFilesInDirectoryRecursiveWithTerminationWithDirectoryInResultWithHidden', 3, tmpResult.count); 842 assertEqualsString('testListFilesInDirectoryRecursiveWithTerminationWithDirectoryInResultWithHidden', TEST_PATH + '\unittests\testdir' + '\file1.ex1', tmpResult[0]); 843 assertEqualsString('testListFilesInDirectoryRecursiveWithTerminationWithDirectoryInResultWithHidden', TEST_PATH + '\unittests\testdir' + '\file2.ex1', tmpResult[1]); 844 assertEqualsString('testListFilesInDirectoryRecursiveWithTerminationWithDirectoryInResultWithHidden', TEST_PATH + '\unittests\testdir' + '\subdir1\file1.ex1', tmpResult[2]); 771 845 772 846 tmpResult.Destroy; … … 1012 1086 1013 1087 assertFalse('testDirectoryExists_NotExistent', tmpResult); 1088 end; 1089 1090 1091 Procedure testDirectoryExists_Archived; 1092 var 1093 tmpResult : Boolean; 1094 begin 1095 tmpResult := DirectoryExists(TEST_PATH + '\unittests\testdir\dir_archived'); 1096 1097 assertTrue('testDirectoryExists_Archived', tmpResult); 1098 end; 1099 1100 1101 Procedure testDirectoryExists_Hidden; 1102 var 1103 tmpResult : Boolean; 1104 begin 1105 tmpResult := DirectoryExists(TEST_PATH + '\unittests\testdir\dir_hidden'); 1106 1107 assertTrue('testDirectoryExists_Hidden', tmpResult); 1108 end; 1109 1110 1111 Procedure testDirectoryExists_Readonly; 1112 var 1113 tmpResult : Boolean; 1114 begin 1115 tmpResult := DirectoryExists(TEST_PATH + '\unittests\testdir\dir_readonly'); 1116 1117 assertTrue('testDirectoryExists_Readonly', tmpResult); 1118 end; 1119 1120 1121 Procedure testDirectoryExists_System; 1122 var 1123 tmpResult : Boolean; 1124 begin 1125 tmpResult := DirectoryExists(TEST_PATH + '\unittests\testdir\dir_system'); 1126 1127 assertTrue('testDirectoryExists_System', tmpResult); 1014 1128 end; 1015 1129 … … 1170 1284 1171 1285 result.add(@testListSubDirectories_None); 1286 result.add(@testListSubDirectories_NoneWithHidden); 1172 1287 result.add(@testListSubDirectories_Many); 1288 result.add(@testListSubDirectories_ManyWithHidden); 1173 1289 1174 1290 result.add(@testListFilesInDirectoryRecursiveWithTermination); 1175 result.add(@testListFilesInDirectoryRecursiveWithTerminationWithDirectoryInResult); 1291 result.add(@testListFilesInDirectoryRecursiveWithTermination_WithHidden); 1292 result.add(@testListFilesInDirectoryRecursiveWithTermination_WithDirectoryInResult); 1293 result.add(@testListFilesInDirectoryRecursiveWithTermination_1WithDirectoryInResultWithHidden); 1176 1294 1177 1295 result.add(@testParentDir_Empty);
Note:
See TracChangeset
for help on using the changeset viewer.