Changeset 97
- Timestamp:
- Mar 17, 2007, 9:47:54 PM (18 years ago)
- Location:
- trunk/NewView
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NewView/FileDialogForm.pas
r94 r97 596 596 ListFilesInDirectory( DirectoryListBox.Directory, 597 597 FileMask, 598 false, 598 599 Filenames); 599 600 -
trunk/NewView/FileUtilsUnit.pas
r89 r97 55 55 56 56 // Breaks up specified Env var path 57 // this always clears the list at the beginning 57 58 Procedure GetDirsInPath(const aPathEnvVar: String; var aList: TStrings); 58 59 … … 60 61 // them to aList 61 62 // 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); 63 67 64 68 // searches for all directories in aDirectory and add them to aList … … 67 71 Procedure ListFilesInDirectoryRecursiveWithTermination(const aDirectory : String; 68 72 const aFilter : String; 73 const aWithDirectoryFlag : boolean; 69 74 var aList : TStrings; 70 75 const aTerminateCheck : TTerminateCheck; … … 352 357 353 358 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); 355 363 var 356 364 tmpRC : APIRET; … … 358 366 tmpMask: String; 359 367 tmpFilterParts : TStringList; 368 tmpDirectory : String; 360 369 i : integer; 361 370 begin … … 366 375 begin 367 376 tmpMask := tmpFilterParts[i]; 368 tmpRC := FindFirst(AddDirectorySeparator(aDirectory) + tmpMask, faAnyFile, tmpSearchResults); 377 tmpDirectory := AddDirectorySeparator(aDirectory); 378 tmpRC := FindFirst(tmpDirectory + tmpMask, faAnyFile, tmpSearchResults); 369 379 370 380 while tmpRC = 0 do … … 372 382 if tmpSearchResults.Attr And faDirectory = 0 then 373 383 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; 375 392 end; 376 393 … … 412 429 Procedure ListFilesInDirectoryRecursiveWithTermination(const aDirectory : String; 413 430 const aFilter : String; 431 const aWithDirectoryFlag : boolean; 414 432 var aList : TStrings; 415 433 const aTerminateCheck : TTerminateCheck; … … 421 439 begin 422 440 // at first add all files from the directory itself 423 ListFilesInDirectory(aDirectory, aFilter, a List);441 ListFilesInDirectory(aDirectory, aFilter, aWithDirectoryFlag, aList); 424 442 425 443 // now determine all subdirectories … … 436 454 tmpSubDirectory := tmpSubDirectories[i]; 437 455 438 ListFilesInDirectoryRecursiveWithTermination(tmpSubDirectory, aFilter, a List, aTerminateCheck, aUseTerminateCheck);456 ListFilesInDirectoryRecursiveWithTermination(tmpSubDirectory, aFilter, aWithDirectoryFlag, aList, aTerminateCheck, aUseTerminateCheck); 439 457 end; 440 458 tmpSubDirectories.Destroy; -
trunk/NewView/unittests/FileUtilsUnitTests.pas
r89 r97 543 543 tmpResult := TStringList.Create; 544 544 545 ListFilesInDirectory('P:\newview_dev', '*.jonas', tmpResult); 546 ListFilesInDirectory('P:\newview_dev', '*.jonas', tmpResult); 545 ListFilesInDirectory('P:\newview_dev', '*.jonas', false, tmpResult); 547 546 548 547 assertEqualsInt('testListFilesInDirectory_NoFiles', 0, tmpResult.count); … … 556 555 tmpResult := TStringList.Create; 557 556 558 ListFilesInDirectory('P:\newview_dev', '', tmpResult);557 ListFilesInDirectory('P:\newview_dev', '', false, tmpResult); 559 558 560 559 assertEqualsInt('testListFilesInDirectory_EmptyFilter', 0, tmpResult.count); … … 570 569 tmpResult := TStringList.Create; 571 570 572 ListFilesInDirectory('P:\newview_dev', '*.txt', tmpResult);571 ListFilesInDirectory('P:\newview_dev', '*.txt', false, tmpResult); 573 572 574 573 assertEqualsInt('testListFilesInDirectory_OneFile', 1, tmpResult.count); … … 585 584 tmpResult := TStringList.Create; 586 585 587 ListFilesInDirectory('P:\newview_dev', '*.*', tmpResult);586 ListFilesInDirectory('P:\newview_dev', '*.*', false, tmpResult); 588 587 589 588 assertEqualsInt('testListFilesInDirectory_ManyFiles', 3, tmpResult.count); … … 602 601 tmpResult := TStringList.Create; 603 602 604 ListFilesInDirectory('P:\newview_dev', '*.txt;*v.cmd', tmpResult);603 ListFilesInDirectory('P:\newview_dev', '*.txt;*v.cmd', false, tmpResult); 605 604 606 605 assertEqualsInt('testListFilesInDirectory_ManyFilter', 2, tmpResult.count); 607 606 assertEqualsString('testListFilesInDirectory_ManyFilter', '__readme.txt', tmpResult[0]); 608 607 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]); 609 685 610 686 tmpResult.Destroy; … … 648 724 649 725 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 650 745 Procedure testListFilesInDirectoryRecursiveWithTermination; 651 746 var … … 654 749 tmpResult := TStringList.Create; 655 750 656 ListFilesInDirectoryRecursiveWithTermination('P:\newview_dev\i18n', '*.ipf;*.lng', tmpResult, nil, false);751 ListFilesInDirectoryRecursiveWithTermination('P:\newview_dev\i18n', '*.ipf;*.lng', false, tmpResult, nil, false); 657 752 658 753 assertEqualsInt('testListFilesInDirectoryRecursiveWithTermination', 16, tmpResult.count); … … 920 1015 result.add(@testListFilesInDirectory_ManyFiles); 921 1016 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); 922 1022 923 1023 result.add(@testListSubDirectories_None); … … 925 1025 926 1026 result.add(@testListFilesInDirectoryRecursiveWithTermination); 1027 result.add(@testListFilesInDirectoryRecursiveWithTerminationWithDirectoryInResult); 927 1028 928 1029 result.add(@testParentDir_Empty);
Note:
See TracChangeset
for help on using the changeset viewer.