• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Как Прочитать Владельца Файла (ntfs)?

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,551
Баллы
155
Код:
function GetFileOwner( FileName: string; var Domain, Username: string ): boolean;
var
  SecDescr: PSecurityDescriptor;
  SizeNeeded, SizeNeeded2: DWORD;
  OwnerSID: PSID;
  OwnerDefault: BOOL;
  OwnerName, DomainName: PChar;
  OwnerType: SID_NAME_USE;
begin
   Result := false;
   GetMem( SecDescr, 1024 );
   GetMem( OwnerSID, SizeOf( PSID ) );
   GetMem( OwnerName, 1024 );
   GetMem( DomainName, 1024 );
   try
      if not GetFileSecurity( PChar( FileName ),
      OWNER_SECURITY_INFORMATION,
      SecDescr, 1024, SizeNeeded ) then
         Exit;
      if not GetSecurityDescriptorOwner( SecDescr, OwnerSID, OwnerDefault) then
         Exit;
      SizeNeeded := 1024;
      SizeNeeded2 := 1024;
      if not LookupAccountSID( nil, OwnerSID, OwnerName,
      SizeNeeded, DomainName, SizeNeeded2, OwnerType ) then
         Exit;
      Domain := DomainName;
      Username := OwnerName;
   finally
      FreeMem( SecDescr );
      FreeMem( OwnerName );
      FreeMem( DomainName );
   end;
   Result := true;
end;

Код для использования:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Domain, Username: string;
begin
   GetFileOwner( 'C:\имя.файла', Domain, Username );
   ShowMessage( Username + '@' + Domain );
end;
 
Вверх Снизу