Rev 6 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6 | Rev 8 | ||
---|---|---|---|
Line 109... | Line 109... | ||
109 | Win32ImportSuffix; |
109 | Win32ImportSuffix; |
110 | 110 | ||
111 | const |
111 | const |
112 | ERROR_FIELD_SIZE = 200; |
112 | ERROR_FIELD_SIZE = 200; |
113 | {$IFDEF VIATHINKSOFT} |
113 | {$IFDEF VIATHINKSOFT} |
- | 114 | // Example of multiple drives merging to one Index |
|
- | 115 | // Find out via "mountvol" command |
|
114 | GUID_EHDD_A = '\\?\Volume{31e044b1-28dc-11e6-9bae-d067e54bf736}\'; |
116 | GUID_EHDD_A = '\\?\Volume{31e044b1-28dc-11e6-9bae-d067e54bf736}\'; |
115 | GUID_EHDD_B = '\\?\Volume{560e8251-2b6a-4ab7-82fc-d03df4d93538}\'; |
117 | GUID_EHDD_B = '\\?\Volume{560e8251-2b6a-4ab7-82fc-d03df4d93538}\'; |
- | 118 | GUID_EHDD_R = '\\?\Volume{9d53ea3c-175c-4a8f-a7b4-7b9e6b765e58}\'; |
|
116 | {$ENDIF} |
119 | {$ENDIF} |
117 | 120 | ||
118 | function MD5File(const filename: string): string; |
121 | function MD5File(const filename: string): string; |
119 | var |
122 | var |
120 | IdMD5: TIdHashMessageDigest5; |
123 | IdMD5: TIdHashMessageDigest5; |
Line 242... | Line 245... | ||
242 | begin |
245 | begin |
243 | Result := filename; |
246 | Result := filename; |
244 | {$IFDEF VIATHINKSOFT} |
247 | {$IFDEF VIATHINKSOFT} |
245 | Result := StringReplace(Result, GUID_EHDD_A, 'EHDD:\', []); |
248 | Result := StringReplace(Result, GUID_EHDD_A, 'EHDD:\', []); |
246 | Result := StringReplace(Result, GUID_EHDD_B, 'EHDD:\', []); |
249 | Result := StringReplace(Result, GUID_EHDD_B, 'EHDD:\', []); |
- | 250 | Result := StringReplace(Result, GUID_EHDD_R, 'EHDD:\', []); |
|
247 | {$ENDIF} |
251 | {$ENDIF} |
248 | end; |
252 | end; |
249 | 253 | ||
250 | function SpecialCompare(a, b: TDateTime): boolean; // true = same timestamp |
254 | function SpecialCompare(a, b: TDateTime): boolean; // true = same timestamp |
251 | begin |
255 | begin |
Line 588... | Line 592... | ||
588 | 592 | ||
589 | {$IFDEF VIATHINKSOFT} |
593 | {$IFDEF VIATHINKSOFT} |
590 | var |
594 | var |
591 | cacheAconnected: boolean; |
595 | cacheAconnected: boolean; |
592 | cacheBconnected: boolean; |
596 | cacheBconnected: boolean; |
- | 597 | cacheRconnected: boolean; |
|
593 | {$ENDIF} |
598 | {$ENDIF} |
594 | function AllowFileCheck(AFileName: string): boolean; |
599 | function AllowFileCheck(AFileName: string): boolean; |
595 | var |
600 | var |
596 | guid: string; |
601 | guid: string; |
597 | begin |
602 | begin |
Line 605... | Line 610... | ||
605 | end; |
610 | end; |
606 | if not cacheBconnected and SysUtils.DirectoryExists(GUID_EHDD_B) then |
611 | if not cacheBconnected and SysUtils.DirectoryExists(GUID_EHDD_B) then |
607 | begin |
612 | begin |
608 | cacheBconnected := true; |
613 | cacheBconnected := true; |
609 | end; |
614 | end; |
- | 615 | if not cacheRconnected and SysUtils.DirectoryExists(GUID_EHDD_R) then |
|
- | 616 | begin |
|
- | 617 | cacheRconnected := true; |
|
- | 618 | end; |
|
610 | Result := cacheAconnected or cacheBconnected; |
619 | Result := cacheAconnected or cacheBconnected or cacheRconnected; |
611 | end |
620 | end |
612 | else |
621 | else |
613 | {$ENDIF} |
622 | {$ENDIF} |
614 | if StartsText('\\?\Volume', AFileName) then |
623 | if StartsText('\\?\Volume', AFileName) then |
615 | begin |
624 | begin |
Line 643... | Line 652... | ||
643 | 652 | ||
644 | if cacheBconnected and FileExists(StringReplace(AFileName, 'EHDD:\', |
653 | if cacheBconnected and FileExists(StringReplace(AFileName, 'EHDD:\', |
645 | GUID_EHDD_B, [])) then |
654 | GUID_EHDD_B, [])) then |
646 | exit(true); |
655 | exit(true); |
647 | 656 | ||
- | 657 | if cacheBconnected and FileExists(StringReplace(AFileName, 'EHDD:\', |
|
- | 658 | GUID_EHDD_R, [])) then |
|
- | 659 | exit(true); |
|
- | 660 | ||
648 | exit(false); |
661 | exit(false); |
649 | end; |
662 | end; |
650 | {$ENDIF} |
663 | {$ENDIF} |
651 | exit(FileExists(AFileName)); |
664 | exit(FileExists(AFileName)); |
652 | end; |
665 | end; |