[C++]Skopiowanie pliku do folderu

H4jt

Użytkownik
Dołączył
Maj 18, 2010
Posty
19
[C++] Skopiowanie pliku do folderu

Cześć, mam otóż niewielki problem w tworzeniu mojego amatorskiego programu o nazwie "cheatcs2d" :) Chodzi mi o skopiowanie pliku i wklejenie go do pewnego folderu który znajduje się na dysku. Nie wiem jaka jest komenda na kopiowanie i wklejanie;f Prosił bym o dopisanie do kodu poniżej i wytłumaczenie na czym to polega :) Pozdrawiam H4jt...

Kod:
#include <iostream>
#include <conio.h>
#include <windows.h>

int main()
{
  using namespace std;
  ShellExecute(NULL, "open", "http://pewnastrona.pl",
  NULL, NULL, SW_SHOWNORMAL);
  cout << "Tu bd cos pisac tajne xd";
  cout << endl;
  cout << "tu tez cos ma pisac tajne xd to nie loader...";

  getch();

  return (0);
}
 
Ostatnia edycja:

discovery44

Były Moderator
Dołączył
Sierpień 14, 2007
Posty
763
PHP:
#include <stdlib.h>
int main()
{
  system("copy X:\\Plik\\wejsciowy.ext X:\\Plik\\wyjsciowy.ext"); /* funkcja system() wykonuje polecenie systemowe  */
 system("pause");
}
O to chodzi?
Nie zapominaj o podwójnym backslash'u w ścieżce.
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
boshe ... kocham takie programowanie. Skoro piszesz w c++ to uzyj funkcji np. Winapi do tego a nie komend cmd.

CopyFile("input","output",TRUE);

Wiem ze to nielogiczne ze funkcja kopiujaca pliki nazywa sie CopyFile ale co poradzic.
 

discovery44

Były Moderator
Dołączył
Sierpień 14, 2007
Posty
763
A tu się nie zgodzę. Będzie korzystał z WinAPI i będzie w raju, na rozmowie wstępnej o prace dostanie do napisania coś na Linuksie i co? Takich banałów nie będzie w stanie napisać. Funkcja system jest 'wielo-platformowa' bo można ją tak samo wywołać i na Windowsie i na Linuksie.
 

hxv

Były Moderator
Dołączył
Sierpień 9, 2006
Posty
797
Tyle, że na Linuxie nie ma polecenia copy. Jeśli chcesz, żeby program działał i na Windowsie i na Linuxie to zdaje się, że trzeba skorzystać z fstream.
 

discovery44

Były Moderator
Dołączył
Sierpień 14, 2007
Posty
763
Tak, można to strumieniami zrobić ale nie zapominaj, że na Linuksach jest polecenie cp. Zatem to powinno wyglądać tak (z użyciem kompilacji warunkowej):
PHP:
#include <stdlib.h>
int main()
{
#ifdef WIN32
  system("copy X:\\Plik\\wejsciowy.ext X:\\Plik\\wyjsciowy.ext");
 system("pause");
#endif

#ifdef LINUX
 system("cp /home/hxv/jessejane.flv /home/hxv/movies/jassejane.flv");
#endif
}
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
Ale jak hxv mowi fstream jest takze wieloplatformowe i to wyglada 10x lepiej jesli w programie uzywasz mechanizmow programu a nie zewnetrznych aplikacji.

pozatym jesli cos sie nie powiedzie to nie program nie dostanie o tym zadnej informacji zwrotnej. A uzywajac np. fstream bedziesz mogl sprawdzic czy kopiowanie sie udalo czy nie.
 

Magnefikko

Były Moderator
Dołączył
Maj 29, 2004
Posty
709
Używania wsadówek w zwartym kodzie należy unikać, wszystko da sie osiągnąć używając wbudowanych instrukcji. Ponadto program który dałeś na przykład, d44, jest podatny na ataki.
 

discovery44

Były Moderator
Dołączył
Sierpień 14, 2007
Posty
763
Na jakiego typu ataki?

// dostałem odpowiedź na priv
 
Ostatnia edycja:
Do góry Bottom