maciek50322 Temat założony przez niniejszego użytkownika |
Kopiowanie pliku do katalogu » 2015-08-13 19:39:02 Mam zamiar przekopiować pliki (znajdujące się w katalogu z programem) do innego folderu, robię tak: string nazwa; cin >> nazwa;
CreateDirectoryA( nazwa.c_str(), NULL );
nazwa = nazwa + "\\bin"; CreateDirectoryA( nazwa.c_str(), NULL );
nazwa = nazwa + "\\Debug"; CreateDirectoryA( nazwa.c_str(), NULL );
CopyFileA( "libsndfile-1.dll", nazwa.c_str(), true ); CopyFileA( "sfml-window-d-2.dll", nazwa.c_str(), true ); CopyFileA( "sfml-window-2.dll", nazwa.c_str(), true ); CopyFileA( "sfml-system-d-2.dll", nazwa.c_str(), true ); CopyFileA( "sfml-system-d-2.dll", nazwa.c_str(), true ); CopyFileA( "sfml-network-2.dll", nazwa.c_str(), true ); CopyFileA( "sfml-network-d-2.dll", nazwa.c_str(), true ); CopyFileA( "sfml-graphic-d-2.dll", nazwa.c_str(), true ); CopyFileA( "sfml-graphic-2.dll", nazwa.c_str(), true ); CopyFileA( "sfml-audio-d-2.dll", nazwa.c_str(), true ); CopyFileA( "sfml-audio-2.dll", nazwa.c_str(), true ); CopyFileA( "sfml-openal32.dll", nazwa.c_str(), true ); Kompilator nie zwraca błędów, niby działa, tworzą się nowe katalogi, ale pliki nie są kopiowane. Czy ktoś wie co robię nie tak? |
|
pekfos |
» 2015-08-13 21:05:33 Ścieżka w drugim argumencie CopyFileA() ma zawierać także nazwę pliku. Poprawienie tego dodatkowo wydłuży ten kod, wiec rozważ opakowanie kopiowania w funkcję i/lub trzymanie nazw w tablicy i kopiowanie w pętli, czy coś podobnego w drodze do uczynienia twojego kodu milszym oku. |
|
maciek50322 Temat założony przez niniejszego użytkownika |
» 2015-08-13 21:35:25 A więc zrobiłem takie coś nie wiem czy dokładnie o to ci chodziło, nowy plik taki .exe, ale go tam nie ma ani nic innego co chciałem skopiować void Cop( string od, string d ) { od = od + ".dll"; CopyFileA( od.c_str(), d.c_str(), true ); }
:P ... ... CreateDirectoryA( nazwa.c_str(), NULL ); nazwa = nazwa + "\\" + nazwa + ".exe"; fstream plikexe( nazwa.c_str(), ios::out ); plikexe.close(); Cop( "libsndfile-1", nazwa ); Cop( "sfml-window-d-2", nazwa ); Cop( "sfml-window-2", nazwa ); Cop( "sfml-system-d-2", nazwa ); Cop( "sfml-system-d-2", nazwa ); Cop( "sfml-network-2", nazwa ); Cop( "sfml-network-d-2", nazwa ); Cop( "sfml-graphic-d-2", nazwa ); Cop( "sfml-graphic-2", nazwa ); Cop( "sfml-audio-d-2", nazwa ); Cop( "sfml-audio-2", nazwa ); Cop( "sfml-openal32", nazwa );
możliwe że nie o to ci chodziło ;p ale może mnie nakierujesz na rozwiązanie |
|
pekfos |
» 2015-08-13 21:40:18 Nie. CopyFileA( "plik.dll", "foo/bar/plik.dll", TRUE );
|
|
maciek50322 Temat założony przez niniejszego użytkownika |
» 2015-08-13 22:07:00 Dzięki. Wszystko działa trochę miałem błędów wcześniej, teraz je znalazłem. To oto jak mam to teraz : void Cop( string od, string d ) { od = od + ".dll"; d = d + ".dll"; CopyFileA( od.c_str(), d.c_str(), true ); } cout << "nazwa: "; cin >> nazwa; pn = nazwa; CreateDirectoryA( nazwa.c_str(), NULL ); nazwa = nazwa + "\\bin"; CreateDirectoryA( nazwa.c_str(), NULL ); nazwa = nazwa + "\\Debug"; CreateDirectoryA( nazwa.c_str(), NULL ); string pliki[ 12 ]; pliki[ 0 ] = "libsndfile-1"; pliki[ 1 ] = "sfml-window-d-2"; pliki[ 2 ] = "sfml-window-2"; pliki[ 3 ] = "sfml-system-d-2"; pliki[ 4 ] = "sfml-system-2"; pliki[ 5 ] = "sfml-network-2"; pliki[ 6 ] = "sfml-network-d-2"; pliki[ 7 ] = "sfml-graphics-d-2"; pliki[ 8 ] = "sfml-graphics-2"; pliki[ 9 ] = "sfml-audio-d-2"; pliki[ 10 ] = "sfml-audio-2"; pliki[ 11 ] = "openal32"; for( int i = 0; i != 12; i++ ) { nazwa = pn + "/bin/Debug/"; nazwa = nazwa + pliki[ i ]; Cop( pliki[ i ], nazwa ); } Działa perfekcyjnie mam nadzieję, że według ciebie też tak wygląda ;p. |
|
« 1 » |