
09/12/2021 (버전 3.5)
03/13/2021 (버전 3.4)
02/01/2021 (버전 3.3)
20/18/2020 (버전 3.2)
20/17/2020 (버전 3.1)
IncludeDirItem 속성.IncludeHiddenFiles 및 SearchHiddenFiles 및 SearchSystemFiles 에 대한 IncludeSystemFiles 포함됩니다.TDSFile TDSResultItem 으로 변경했습니다.20/17/2020 (버전 3.0)
ResultList . 문자열 목록에서 결과를 얻으려면 새 메소드 GetResultStrings 사용할 수 있습니다.IncludeHiddenFiles 및 IncludeSystemFiles 속성.11/22/2020 (버전 2.0)
Inclusions 및 Exclusions 속성.10/31/2020 (버전 1.3)
10/27/2020 (버전 1.2)
10/26/2020 (버전 1.1)
05/03/2020
Delphi를 사용하고 파일 및 디렉토리를 사용하는 경우 결국 디렉토리에서 파일 목록을 검색하고 가져 오거나 하위 디렉토리의 파일을 검색해야합니다.
오래된 FindFirst 및 FindNext 함수를 사용하면 조금 어려울 수 있습니다. 이제 System.IOUtils 장치에서 사용할 수있는 TDirectory.GetFiles 오버로드가 있습니다.
그러나 getfiles 메소드를 사용하더라도 하위 디렉토리 포함 된 고급 매개 변수가 필요한 경우 모든 디렉토리를 반복해야합니다. 또한 경로 문자열의 일부를 포함하는 마스크를 지정하려면이 리소스가 필요할 때마다 코드에서 문자열로 작업해야합니다.
그래서 파일을 쉽게 검색하는 방법이되기 위해이 구성 요소를 구축하기로 결정했습니다.
Delphi XE3를 지원합니다. Delphi 11
원하는 속성을 채우고 호출 방법 Seek 만하면됩니다.
그런 다음 공개 속성 ResultList 읽고 모든 파일을 찾을 수 있습니다. 이 목록에는 TDSResultItem 객체가 포함되어 있습니다.
Dir: String = 검색 경로
Inclusions: TStrings = 라인이 지정되면 아래에 설명 된 마스크 구문에 따라 구성 요소는 여기에 지정된 마스크 만 검색합니다.
Exclusions: TStrings = Inclusions 후 파일이 Exclusions 마스크와 일치하는지 (아래 설명 된 마스크 구문에 따라) 검색에서 제외됩니다.
마스크 구문 :
*.txt
myapp.exe
*xyz*.doc
myfile?.rtf
*sub_path*
first_path*
path1path2file.avi
<F>*abc*
마스크와 함께 문자열
<F>사용하면 경로의 파일 이름 부분 만 고려됩니다. 이것은 마스크가 디렉토리 부분과 혼동 될 수있을 때 유용합니다.
예 : 경로 C : MyApp이 있다고 가정 해 봅시다. 이 폴더 안에는 다른 폴더 c : myapp subfolder가 있습니다. 이 마지막 폴더 안에는 my_app_file.txt라는 파일이 있습니다.
따라서 텍스트 "앱"이 포함 된 모든 파일을 제외 해야하는 경우 Masks 속성에 지정할 수 있습니다. *app* . 그러나이 경우 폴더는 표현 *app* 와 일치하기 때문에 폴더도 제외되며 다른 이름을 가진 다른 파일이 있기 때문에이 디렉토리를 포함한다고 가정합니다. 이 경우 <F>*app* 사용할 수 있습니다. 구성 요소가 마스크를 점검 할 때 파일 이름 부분 만 고려합니다.
이러한 속성은 USSMASK 속성에 따라 달라집니다.
Sorted: Boolean = 활성화 된 경우 디렉토리와 파일을 알파벳순으로 정렬합니다. (기본 거짓)
SubDir: Boolean = 활성화 된 경우 검색 경로 내부의 모든 하위 디렉토리에서 파일을 스캔합니다. (기본값)
UseMask: Boolean = 활성화 된 경우 Inclusions 및 Exclusions 속성을 고려합니다. 비활성화 된 경우 항상 모든 파일을 검색합니다. (기본 활성화).
IncludeHiddenFiles = 활성화 된 경우 숨겨진 파일과 폴더가 포함됩니다 (Windows 플랫폼에서만 작동).
IncludeSystemFiles = 활성화 된 경우 시스템 파일 및 폴더가 포함됩니다 (Windows 플랫폼에서만 작동).
디렉토리 찾기를 실행하면 결과가 TDSResultItem 객체가 포함 된 ResultList 속성에서 결과를 검색합니다. 이 목록을 반대하여 결과 속성을 얻을 수 있습니다.
BaseDir = 검색이 시작될 때 사용 된 디렉토리 경로.
RelativeDir = 기본 디렉토리 접두사가없는 디렉토리 경로.
Name = 파일 이름 부분 만.
Size = 바이트의 파일 크기.
Attributes = 파일 속성 (tsearchrec.attr 속성과 동일).
Timestamp = 파일 마지막 쓰기 날짜 및 시간.
IsDir = 항목이 디렉토리 인 경우 (검색이 실행될 때 IncludeDirItem 속성이 참을 경우에만 나타납니다).
파일 경로 문자열 목록 만 얻으려면 GetResultStrings 메소드를 사용할 수 있습니다.
procedure GetResultStrings (S: TStrings; Kind: TDSResultKind); Kind 속성이 나타내는 곳 :
// Returns bytes in megabytes string format, with two decimal places.
function BytesToMB (X: Int64): string;
// Returns file size in bytes.
function GetFileSize ( const aFileName: string): Int64;
// Returns if an attribute enumerator contains a specific attribute (use System.SysUtils consts: faReadOnly, faHidden, faDirectory...)
function ContainsAttribute (AttributesEnum, Attribute : Integer): Boolean;