gpt4 book ai didi

delphi - 服务无法访问文件夹

转载 作者:行者123 更新时间:2023-12-02 22:24:48 31 4
gpt4 key购买 nike

我已经使用 Delphi 制作了一项服务来备份 firebird 数据库。该服务基本上获取目标目录并使用 GBAK 创建 FBK 文件。在除“Google Drive”目录之外的任何目录中都可以正常工作,但我不知道如何解决它。

当我与服务分开执行 GBAK 时,它可以工作,所以我不知道出了什么问题

这是一些代码

if not FileExists(GetEnvironmentVariable('ProgramData') + '\MY\' + Nombre) then
try
FillChar(SEInfo, SizeOf(SEInfo), 0);
SEInfo.cbSize := SizeOf(TShellExecuteInfo);
with SEInfo do
begin
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := 0;
lpFile := PWIDEChar(RegQueryStringValue('SOFTWARE\Firebird Project\Firebird Server\Instances', 'DefaultInstance') + 'bin\gbak.exe');
nShow := SW_HIDE;
lpParameters := PWIDEChar('-v -t -user SYSDBA -password "masterkey" MY ' + '"' + GetEnvironmentVariable('ProgramData') + '\MY\' + Nombre + '"');
end;
if ShellExecuteEx(@SEInfo) then
begin
repeat
GetExitCodeProcess(SEInfo.hProcess, ExitCD);
until (ExitCD <> STILL_ACTIVE) or (Terminated);
end;
except
on e: Exception do
begin
if GetLastError <= 32 then
begin
case GetLastError of
0, se_err_OOM:
InsertError('OutMem', error_1);
error_File_Not_Found:
InsertError('GMiss', error_2);
error_Path_Not_Found:
InsertError('Path', error_3);
error_Bad_Format:
InsertError('GBreak', error_4);
se_err_AccessDenied:
InsertError('AccX', error_5);
se_err_NoAssoc, se_err_AssocIncomplete:
InsertError('BadFile', error_6);
se_err_DDEBusy, se_err_DDEFail, se_err_DDETimeOut:
InsertError('DDE', error_7);
se_err_Share:
InsertError('Share', error_8);
else
InsertError('Unkn', error_9);
end;
MYBackup.Status := csStopped;
Exit;
end
else
begin
InsertError(e.ClassName, e.Message);
MYBackup.Status := csStopped;
Exit;
end;
end;
end;

最佳答案

Google 云端硬盘通常会将文件夹的访问权限限制为创建该文件夹的用户。您的服务很可能作为本地系统运行。只需检查文件夹权限(属性/安全)

关于delphi - 服务无法访问文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17587412/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com