Wyczekiwanie na skopiowane pliku

0

Mam problem, otóż:

Kopiuje plik (rozmiar dynamiczny, raz będzie zajmował 60 mb, a raz np. 1 mb) ze ścieżki A do ścieżki B, a następnie Od razu go usuwam.

CopyFile(file1, file2, FALSE);
DeleteFile(file1);

I teraz miałem problem, bo kopiowałem plik 30 mb i nie zdążył się skopiować do ścieżki B, bo go usunęło ze ścieżki A.

Jak w programie "poczekać", aż cały plik się skopiuje, a dopiero potem wykonać instrukcję DeleteFile?

0

To dziwne, bo instrukcja DeleteFile() powinna się wykonać dopiero po skopiowaniu pliku (instrukcja CopyFile()); Być może to nie tu leży błąd;

Spróbuj ręcznie skopiować plik bez użycia CopyFile(); Jest mnóstwo przykładów w sieci o tym jak sie to robi; Wtedy będziesz miał pewność, że cały plik został poprawnie skopiowany (do końca) i dopiero po jego skopiowaniu możesz go usunąć;

Ewentualnie możesz zrobić tak:

if CopyFile(File1, File2, False) then
  DeleteFile(File1);

To powinno pomóc, bo plik zostanie usunięty dopiero wtedy, gdy funkcja CopyFile() zwróci wartość True - czyli wykona się do końca (co znaczy, że plik został skopiowany);

1

1.To nie ma prawa tak się stać, że usuwa a jeszcze nie skopiował, coś pewnie masz źle.
2.Czemu nie przeniesiesz tego pliku? -.-'

0

No właśnie, "Czemu nie przeniesiesz tego pliku?". Użyj MoveFile.

1 użytkowników online, w tym zalogowanych: 0, gości: 1