logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

delphi-operacje na folderach(kopiuj,przenieś,zmień nazwę)

prokopcio 13 Sty 2009 11:55 2682 3
REKLAMA
  • #1 5991965
    prokopcio
    Poziom 29  
    Posty: 2027
    Pomógł: 39
    Ocena: 143
    Witam.
    Szuka, szukam i nie mogę znaleźć więc prosze o wskazówki - w jaki sposób poza "SHFileOperation" można wykonać operacje na folderach takie jak:
    - zmiana nazwy
    - przenoszenie
    - kopiowanie
    - usuwanie

    wspomniany SHFileOperation niezbyt mi odpowiada bo to jest kopiowanie przez system a nie moją aplikację i są wyświetlane komunikaty i okienka z windows a to mi niezbyt odpowiada.
  • REKLAMA
  • #2 5993727
    Dżyszla
    Poziom 42  
    Posty: 7075
    Pomógł: 1095
    Ocena: 225
    Wyliczenia plików (FindFirst) i kopiowanie plików poprzez BlockRead/BlockWrite. Gdzieś znajdziesz też zakładanie katalogów i usuwanie katalogów oraz plików.
  • REKLAMA
  • #3 5994325
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    prokopcio napisał:
    Witam.
    Szuka, szukam i nie mogę znaleźć więc prosze o wskazówki - w jaki sposób poza "SHFileOperation" można wykonać operacje na folderach takie jak: - zmiana nazwy - przenoszenie - kopiowanie - usuwanie

    wspomniany SHFileOperation niezbyt mi odpowiada bo to jest kopiowanie przez system a nie moją aplikację i są wyświetlane komunikaty i okienka z windows a to mi niezbyt odpowiada.


    Przemianowanie folderu daje się zrobić po przypisaniu go do zmiennej typu file, funkcją Rename, co do pozostałych operacji, to część komunikatów systemowych (a może i wszystkie) można wyłączyć przy pomocy flag TSHFileOpStruct.fFlags np.

    fFlags := FOF_NOCONFIRMATION+fof_silent+FOF_NOCONFIRMMKDIR;
    
    
    uses
     ShellAPI;
    
    procedure SHCopyFile(hWndOwner: HWND; const SourceFile, TargetFile: string);
    var
     Info: TSHFileOpStruct;
     Aborted: Bool;
    begin
     Aborted := False;
     with Info do begin
       Wnd := hWndOwner;
       wFunc := FO_COPY;
       pFrom := pChar(SourceFile);
       pTo := pChar(TargetFile);
       fFlags := FOF_NOCONFIRMATION+fof_silent+FOF_NOCONFIRMMKDIR;
       fAnyOperationsAborted := Aborted;
     end;
     try
       SHFileOperation(Info);
     finally
       if Aborted then
         ;                                                     { act upon any user cancellations }
     end;
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    try
     SHCopyFile(Handle, 'c:\xx\*.*', 'c:\yy\');
    except
    end;
    end;
  • #4 5995591
    prokopcio
    Poziom 29  
    Posty: 2027
    Pomógł: 39
    Ocena: 143
    w sumie to miałem problem (który bardzo mnie zniechęcił bo długo walczyłem) z "SHFileOperation" ale już sobie poradziłem więc może być on, jeśli tylko uda mi się ukryć jego działanie - poeksperymentuję z tym co mi opisałeś.

    Pytanie z innej beczki - gdzie podziały się Wasze przyciski "pomógł" ? Czy na tym forum "dla początkujących" niema takich przycisków ?
REKLAMA