12-05-2021, Saat: 14:13
Arkadaşlar Merhaba,
Web tabanlı çalışan uygulamızda klasörden izinleri kaldırırken " List index out of bounds (0)Proc: RemoveFolderTruesteeThread" hatası alıyoruz.
Bir çözüm önerisi olan var mı?
path olarak aşağıdaki fonksiyona bu şekilde bir folder path gönderdiğimizde geriye değeri alamıyoruz. ama kısa path larda bu yaşanmıyor
kısa path : \\fileserv.his.local\FileShareEMin\4444444
uzun path : \\DEMOSRV.HIS.LOCAL\DemoSrvFileShare02\10000Folders\1000Folders - Copy (9)\{0055660F-9CC6-4FFE-8510-6C15CED669E2}
kullanılan foksiyon
function GetACLPermission(folder_path: WideString): WideString;
var
setacl: ISetACLCOMServer;
sList: TStringList;
begin
sList := TStringList.Create;
try
CoInitialize(nil);
setacl := CoSetACLCOMServer.Create;
setacl.SetObject(folder_path, SE_FILE_OBJECT);
setacl.SetAction(ACTN_LIST);
//setacl.AddACE('Everyone', 'Full', 0, false, SET_ACCESS, ACL_DACL);
setacl.SetListOptions(LIST_TAB, ACL_DACL, true, LIST_NAME);
// setacl.AddAction(ACTN_SETINHFROMPAR);
//setacl.SetObjectFlags(INHPARNOCOPY, INHPARNOCHANGE, true, false);
setacl.Run();
sList.Text := setacl.GetLastListOutput;
sList.Delete(0);
sList.Delete(0);
sList.Delete(0);
setacl := nil;
Result := sList.Text;
finally
sList.Free;
CoUnInitialize();
end;
end;
Web tabanlı çalışan uygulamızda klasörden izinleri kaldırırken " List index out of bounds (0)Proc: RemoveFolderTruesteeThread" hatası alıyoruz.
Bir çözüm önerisi olan var mı?
path olarak aşağıdaki fonksiyona bu şekilde bir folder path gönderdiğimizde geriye değeri alamıyoruz. ama kısa path larda bu yaşanmıyor
kısa path : \\fileserv.his.local\FileShareEMin\4444444
uzun path : \\DEMOSRV.HIS.LOCAL\DemoSrvFileShare02\10000Folders\1000Folders - Copy (9)\{0055660F-9CC6-4FFE-8510-6C15CED669E2}
kullanılan foksiyon
function GetACLPermission(folder_path: WideString): WideString;
var
setacl: ISetACLCOMServer;
sList: TStringList;
begin
sList := TStringList.Create;
try
CoInitialize(nil);
setacl := CoSetACLCOMServer.Create;
setacl.SetObject(folder_path, SE_FILE_OBJECT);
setacl.SetAction(ACTN_LIST);
//setacl.AddACE('Everyone', 'Full', 0, false, SET_ACCESS, ACL_DACL);
setacl.SetListOptions(LIST_TAB, ACL_DACL, true, LIST_NAME);
// setacl.AddAction(ACTN_SETINHFROMPAR);
//setacl.SetObjectFlags(INHPARNOCOPY, INHPARNOCHANGE, true, false);
setacl.Run();
sList.Text := setacl.GetLastListOutput;
sList.Delete(0);
sList.Delete(0);
sList.Delete(0);
setacl := nil;
Result := sList.Text;
finally
sList.Free;
CoUnInitialize();
end;
end;