Metoda nie wykonuje polecenia kopiowania pliku

0

Mam taką metodę, która po wykonaniu zwraca komunikat w konsoli Error: 5, a sam plik nie zostaje przekopiowany.

 
BOOL b = CopyFile("Load\\Files\\plik.txt","Load\\All\\1",0 );
if (!b) {
    std::cout << "Error: " << GetLastError() << std::endl;
} else {
    std::cout << "Okay " << std::endl;
}

Co robię źle?

0

http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx
Poza tym, tak się nie wywołuje GetLastError.
Trzeba to robić jako bezpośrednio następną instrukcję, a u ciebie tak nie jest, bo najpierw robisz cout<<"Error", co potencjalnie może zepsuć wartość "last error".

0

Jakim cudem brak dostępu, jak to przenosi pliki w folderach aplikacji,a nie żadnych systemowych. Będę musiał chyba kopiować sposobem:
1.Otwarcie pliku
2. Getline pobierane do tablicy vectorów
3.Kopiowanie do nowego pliku

0

A te pliki też tworzy aplikacja? To że są w folderze aplikacji nie musi oznaczać, że uprawnienia są ok.

0

Nie, plik jest już stworzony.

0

Windows 8, poza tym program będzie używany przez innych, więc jeśli mają być jakieś komplikację z dostępami, to wolę już przenosić zawartość.

0

Ale jak nie działa CopyFile to "przenoszenie zawartości" z tego samego powodu też może nie zadziałać.

0

Tak samo może nie zadziałać odczytywanie danych z piku, u usuwanie plików, a jednak wszystko działa bez problemu, oprócz tej oto metody kopiującej.

0

Jakim cudem brak dostępu, jak to przenosi pliki w folderach aplikacji
A te „foldery aplikacji” to są gdzie?
Bo do Program Files standardowo nie ma dostępu do zapisu. Od X lat Microsoft zaleca zapisywanie plików w profilu użytkownika.

CopyFile("Load\\Files\\plik.txt","Load\\All\\1",0 );

Czy 1 to docelowa nazwa pliku czy katalog?
Jeśli istnieje już element o nazwie 1 to kopiowanie się nie powiedzie.
Jeśli to ścieżka, to dodaj \\ na końcu.

0

Wszystko odbywa się w folderze aplikacji, który umieszczony jest na pulpicie.

1 to nazwa folderu.

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