Модуль "P2KApi" (часть 36) - TP2KAPI.File_Delete

Рубрика: Исходники
Среда, 21 апреля 2010 г.
Просмотров: 170
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
function TP2KAPI.File_Delete(AFileName: string) : boolean;
var
  i: integer;
  pFSACDelete: PTCIFSACStruct;
  pFSACDelete05: PTCIPacket05;
  pAnswerData: pbytearray;
  ssize: word;
  xLen: byte;
  TCICmd_code: word;
  xx: dword;

begin
  result:= false;
  if not TelStatus then exit;
  
  New(pFSACDelete);
  New(pFSACDelete05);
  pAnswerData:= AllocMem(26);
  try
    xLen:= length(AFileName);
    ssize:= $4 + length(aFileName);
    TCICmd_code:= $4A;
    FillTCIFSACStruct(ssize, TCICmd_Code, pFSACDelete);
    FillTCIFSACStructEx(ssize, TCICmd_Code, pFSACDelete05);
    FillMemory(@pFSACDelete^.OtherData, 2 + 512, 0);
    FillMemory(@pFSACDelete05^.OtherData, 2 + 512, 0);
    i:= convert_word(FSACDELFILE);
    CopyMemory(@pFSACDelete^.OtherData[2], @i, 2);
    CopyMemory(@pFSACDelete05^.OtherData[2], @i, 2);
    for i:=0 to xLen-1 do begin
                            pFSACDelete^.OtherData[4 + i]:= ord(aFileName[i+1]);
                            pFSACDelete05^.OtherData[4 + i]:= ord(aFileName[i+1]);
                          end;
    try
      xx:= 26;
      if iP2KCF = 0
        then begin
               result:= SendCommand(pFSACDelete, ssize+$10, Pointer(pAnswerData), xx, xP2KTimeOut);
                if pAnswerData[4] = 0 then result:= false
                                      else result:= true;
             end
        else result:= SendCommand05(TCICmd_code, pFSACDelete05, ssize, Pointer(pAnswerData), xx, xP2KTimeOut);
    except
      result:= false;
    end;
  finally
    Dispose(pFSACDelete); pFSACDelete:= nil;
    Dispose(pFSACDelete05); pFSACDelete05:= nil;    
    FreeMem(pAnswerData, 26); pAnswerData:= nil;
  end;
end;
Rambler's Top100