目前我使用这个函数,基于JCL代码,它能够很好地工作:
function IsDirectoryWriteable(const AName: string): Boolean;
var
FileName: PWideChar;
H: THandle;
begin
FileName := PWideChar(IncludeTrailingPathDelimiter(AName) + 'chk.tmp');
H := CreateFile(FileName, GENERIC_READ or GENERIC_WRITE, 0, nil,
CREATE_NEW, FILE_ATTRIBUTE_TEMPORARY or FILE_FLAG_DELETE_ON_CLOSE, 0);
Result := H <> INVALID_HANDLE_VALUE;
DeleteFile(FileName);
end;
关于这些标志,我能做些什么来改进它们吗?测试是否可以在不实际创建文件的情况下完成?或者这个功能已经在RTL或Jedi库中可用了吗?
GetFileSecurity
函数。 - Andreas Rejbrand