Как определить, нужны ли права администратора для изменения файла или нет?

У меня есть программа на Delphi, работающая с файлами. Использую я функцию AssignFile(). Проблема в том, что файлы на системном разделе требуют права администратора для их изменения. Из-за этого программа выдает ошибку. Можно ли как-то заранее узнавать, какие файлы требуют права администратора, а какие нет?


Ответы (1 шт):

Автор решения: Alex R.

Ваша программа может запускаться от имени администратора и тогда никакой ошибки не будет.

Проще всего отлавливать ошибку ввода/выводы, директива компилятора $IoChecks.

procedure TTestForm.Button1Click(Sender: TObject);
var
  vDir: string;
  vFile : TextFile;
begin
  vDir := 'c:\Program Files (x86)\Test.txt';

  AssignFile(vFile, vDir);

{$IoChecks Off}
  Rewrite(vFile);
{$IoChecks On}
  if IOResult = 0 then
    begin
  // Запись нескольких известных слов в этот файл
      WriteLn(vFile, 'Hello');
      WriteLn(vFile, 'World');

  // Закрытие файла
      CloseFile(vFile);
    end
  else
    Application.MessageBox('Не срослось', 'Test');
end;
→ Ссылка