[C++] / Program kopiujący pliki *.mp3

Witam

Chciałbym się doradzić, ponieważ piszę program konsolowy, który za zadanie ma kopiować pliki MP3 i tutaj mam pewien niedosyt, ponieważ użycie

system("Copy C:\\source*.mp3 C:\\destination");

Mnie nie zadowala, gdyż pliki *.mp3 powinny być kopiowanie do pamięci Flash, a windows różnie przydziela podane ścieżki dostępu do danego urządzenia w przypadku kilku takich urządzeń działających w systemie. Chciałbym, żeby adres docelowy był podawany przez użytkownika i tutaj prosiłbym, żeby mnie naprowadzić, jak to zrobić? Czego użyć? Nie odkryłem, ani nie znalazłem, żeby można to było wykonać, w przypadku użycia gotowej funkcji system. Raczej wolałbym uniknąć pytania, jaka ścieżka jest elementu docelowego, a później po prostu w przypadku odpowiedniej ścieżki użyć polecenia system Czyli, czego nie chciałbym zrobić to :

....

cout << "Podaj ścieżke elementu docelowego?" << endl;

cin.getline(zmienna, sizeof(zmienna));

switch(zmienna){

case ... : system("Copy C:\\ G:\\"); break;

case ... : system("Copy C:\\ H:\\"); break;

}

Pozdrawiam

Jeśli chcesz używać polecenia system to niepotrzebnie używasz c++. Lepiej cie wyjdzie napisać bat :slight_smile:

Wszystko co dajesz sprowadza się do:

echo "Podaj instniejącą ścieżkę docelową, np d:\ d:\folder\"

set /p doc=

copy c:\folder\*.mp3 %doc%

Zapisujesz jako nazwa.bat

Co do twojego pytania, jeśli już chcesz się na to uprzeć to dodaj ścieżkę do ciągu w poleceniu system (zmienną) :slight_smile:

char c1[128] = "\0"; // ścieżka docelowa

char cmnd[128+sizeof(c1)] = "\0"; // źródło(zamiast "\0" wpisać coś ustalonego)


cin >> c1;


strcat(cmnd, c1);


system(cmnd);

Ok. Rozumiem, słuszna uwaga z system. Moja “gafa” :slight_smile:

Dziękuje za odpowiedzi