Wyczekiwanie na skopiowane pliku

Wyczekiwanie na skopiowane pliku
  • Rejestracja: dni
  • Ostatnio: dni
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.

Kopiuj
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?

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
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:

Kopiuj
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);

  • Rejestracja: dni
  • Ostatnio: dni
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? -.-'

adf88
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.