そのボリュームでNTFSファイル圧縮機能を使用できるかどうかはGetVolumeInformationでFileSystemFlagsを取得し、FS_FILE_COMPRESSIONが含まれているかどうかで判定します。
uses
Windows, SysUtils;
{$WARN SYMBOL_PLATFORM OFF}
function VolumeCanCompress(const Filename: String): Boolean;
var
MaximumComponentLength: DWORD;
FileSystemFlags: DWORD;
RootPath: String;
begin
{ Get root path }
RootPath := IncludeTrailingPathDelimiter(ExtractFileDrive(Filename));
{ Get volume information }
Win32Check(GetVolumeInformation(PChar(RootPath),nil,0,nil,
MaximumComponentLength,FileSystemFlags,
nil,0));
{ Check FS_FILE_COMPRESSION flag }
Result := ((FileSystemFlags and FS_FILE_COMPRESSION) <> 0);
end;
{$WARN SYMBOL_PLATFORM ON}
元ねたはNTFSの圧縮機能 - HEROPA's HomePageなど。
0 件のコメント:
コメントを投稿