Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

delphi - kopiowanie plików - TShFileOpStruct

02 Kwi 2007 12:02 2771 1
  • Poziom 13  
    Witam,
    Problem jest dosyć dziwaczny jak dla mnie, więc przedstawię go w miarę szczegółowo. Może ktoś mi wyjaśni o co w tym chodzi. Najpierw kawałek kodu:
    Code:

    procedure TForm1.Button1Click(Sender: TObject);
    var
      kop: TShFileOpStruct;
    begin
     kop.Wnd := Handle;
     kop.wFunc := FO_COPY;
     kop.pFrom := 'C:\pliki\numer1.txt';
     kop.pTo := 'C:\pliki\kopie';
     kop.fFlags := FOF_ALLOWUNDO + FOF_NOCONFIRMATION;
     kop.lpszProgressTitle := 'Trwa kopiowanie';

     SHFileOperation(kop);
    end;

    Używam D4 St. i WXPHE. W katalogu 'pliki' znajduje się plik 'numer1.txt' oraz inne ponazywane analogicznie (bez znaczenia dla problemu). Katalog 'kopie' jest pusty. Podczas wykonania powyższego kodu dostaję komunikat:
    "Nie można skopiować kopie: Folder docelowy jest taki sam jak folder źródłowy"
    .. a kto go chce w ogole kopiowac ?....
    Teraz najciekawsze, jak dla mnie, jezeli zmienimy nazwe pliku np. na 'nu_mer1.txt', to wszystko jest OK... jest "uczulony" na nazwę numer1.txt (cyfra może być dowolna, rozszerzenie tez nie ma znaczenia). Programik nie "chce" już wtedy kopiować katalogu 'kopie' i wszystko gra.
    Jeżeli wyremuję flagi wtedy (po wykonaniu kodu) w lokalizacji docelowej mam skopiowany 'numer1.txt' i utworzony pusty katalog 'kopie', ale tylko w przypadku gdy plik nazywa się 'numer1.txt', w innym wszystko jest 'normalnie'.
    Nie szukam rozwiązania tego problemu, bo nie stanowi to wielkiego wyzwania, ale chciałbym, żeby mi ktoś ten konkretny przypadek wyjaśnił, dla samej wiedzy i na przyszlość.
    Z góry dziękuję za zainteresowanie i pozdrawiam.

    G.B.
  • Poziom 12  
    kop.pTo := 'C:\pliki\kopie';

    Tu musi być podana nazwa pliku docelowego a nie tylko katalog.