Delphi - Запись в файл с помощью приложения без прав администратора работает с правами администратора, но не с правами других пользователей - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь записать свое приложение в текстовый файл. Когда программа запускается с учетной записью администратора Windows, она работает, но не с обычной учетной записью Windows. Приложение не работает как администратор оба раза. Может ли учетная запись, на которой работает программа, влиять на права записи? Есть ли способ обойти это?

И каталог, и файл имеют право на запись для любого пользователя.

Я использую процедуры Append и WriteLn из System.

Файл находится в каталоге Program Files, хотя мы изменяем доступ к нашему собственному каталогу для записи обычными пользователями.

EDIT: Вот код

var
f: TextFile;

AssignFile(f, sFile);

if not FileExists(sfile) then
begin
    Rewrite(f);
end
else
begin
    //Will append to the file
    Append(f);
end;

Writeln(f, sInfo);

Flush(f);
CloseFile(f);

1 Ответ

0 голосов
/ 14 мая 2018

Да, учетная запись, под которой запускается программа, определяет, куда она может и не может писать.

Пользователи без прав администратора не могут писать в программные файлы и во многих других местах.

Вам нужно будет провести некоторое исследование, чтобы выяснить, куда пользователь без прав администратора может писать, но начните с: System.IOUtils.TPath.GetHomePath

...