我试图让我的应用程序写入文本文件。当程序在Windows管理员帐户上运行时,它可以工作,但不是在使用常规Windows帐户运行时。应用程序两次都不以管理员身份运行。程序运行的帐户是否会影响写入权限?有办法解决它吗?
目录和文件都具有任何用户的写入权限。
我使用System的附加和WriteLn程序。
虽然我们将对自己目录的访问权限更改为普通用户可写,但仍可在Program Files目录中找到该文件。
编辑: 这是代码
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);
答案 0 :(得分:1)
是的,运行程序的帐户决定了它可以写入和不能写入的位置。
非管理员用户无法写入程序文件以及许多其他地方。
您需要做一些研究,以找出非管理员用户可以写入的位置,但首先要:System.IOUtils.TPath.GetHomePath