Zmiana nazwy pliku na aktualną datę i czas

dział ogólny

Zmiana nazwy pliku na aktualną datę i czas

Nowy postprzez Krzysiu555 » sobota, 23 sierpnia 2008, 18:12

To mój pierwszy post na tym forum więc serdecznie wszystkich witam.

Cieszę się że to forum znów powstało i mam nadzieję że tym razem pobędzie trochę dłużej.

Mam taki problem:
Otóż w katalogu w którym mam swój program mam katalog /temp/ a w nim plik message.wav. Chciałbym żeby (np. po wciśnięciu jakiegoś przycisku) ten plik się skopiował do tego samego folderu tylko żeby jego nazwą była data i czas w formacie: dd/mm/yyyy - hh:mm:ss. W efekcie chce otrzymać /temp/message.wav i /temp/data - czas.wav

Napisałem już coś takiego:
Kod: Zaznacz cały
//przypisanie zmiennej data aktualnej daty
TDateTime today = TDateTime::CurrentDate();
String data = today.FormatString("dd/mm/yyyy");

//przypisanie zmiennej czas aktualnej godziny
TDateTime now = TDateTime::CurrentTime();
String czas = now.FormatString("hh:nn:ss");

//przypisanie zmiennej sciezka sciezki do docelowego pliku
String sciezka = "temp\\" + data + " - " + czas + ".wav";

//kopiowanie i zmiana nazwy jesli sie nie powiedzie wyswietlany komunikat "BLAD!!!"
if(CopyFile("temp\\message.wav", sciezka.c_str(), true) == false) {
ShowMessage("BLAD!!!");
}


Efekt jest taki że cały czas mam ten "BLAD!!!"

Gdy zmieniam nazwę kopiowanego pliku na cokolwiek innego to działa, natomiast na datę nie.

Proszę o pomoc.

Pozdrawiam,
Krzysiu555
Avatar użytkownika
Krzysiu555
Intelektryk
Intelektryk
 
Posty: 161
Dołączył(a): sobota, 23 sierpnia 2008, 16:55
Podziękował : 2
Otrzymał podziękowań: 1
System operacyjny: Windows 7 Professional 64
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 0
    NieznanyNieznana

Re: Zmiana nazwy pliku na aktualną datę i czas

Nowy postprzez wargo » sobota, 23 sierpnia 2008, 19:37

Sprawdź jaką wartość ma ścieżka do której chcesz skopiować (data), być może zawiera niedozwolone znaki.
Avatar użytkownika
wargo
Mądrosław
Mądrosław
 
Posty: 389
Dołączył(a): niedziela, 13 lipca 2008, 16:44
Podziękował : 12
Otrzymał podziękowań: 3
System operacyjny: Windows 7
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 6259515
    NieznanyNieznana

Re: Zmiana nazwy pliku na aktualną datę i czas

Nowy postprzez Krzysiu555 » sobota, 23 sierpnia 2008, 20:39

Męczyłem się nad tym dwa dni. Próbowałem to obejść na setki sposobów. A to okazało się takie proste! Kompletnie nie zauważyłem - przeszkadzały "/" w dacie.

WIELKIE DZIĘKI
Avatar użytkownika
Krzysiu555
Intelektryk
Intelektryk
 
Posty: 161
Dołączył(a): sobota, 23 sierpnia 2008, 16:55
Podziękował : 2
Otrzymał podziękowań: 1
System operacyjny: Windows 7 Professional 64
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 0
    NieznanyNieznana

Re: Zmiana nazwy pliku na aktualną datę i czas

Nowy postprzez Cyfrowy Baron » niedziela, 24 sierpnia 2008, 08:33

Nazwa pliku nie może zawierać niektórych znaków, a do takich znaków między innymi należą znaki: / \
Tak więc dla daty musisz użyć innego separatora, może: -
To nie wymysł BCB lecz ograniczenie systemowe, czyli Windows nie zezwoli na nazwę pliku. np: 24/08/2008 - 08:29:19.roz

Polecam coś takiego:

Kod: Zaznacz cały
TDateTime now = TDateTime::CurrentDataTime(); // data i czas o d razu
String czas = now.FormatString("dd-mm-rrrr - hh:nn:ss");
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4727
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Zmiana nazwy pliku na aktualną datę i czas

Nowy postprzez Krzysiu555 » niedziela, 24 sierpnia 2008, 17:19

okazało się że jak w czasie użyję ":" to też nie działa - czyli ":" też chyba jest niedozwolone

ale dzięki
Avatar użytkownika
Krzysiu555
Intelektryk
Intelektryk
 
Posty: 161
Dołączył(a): sobota, 23 sierpnia 2008, 16:55
Podziękował : 2
Otrzymał podziękowań: 1
System operacyjny: Windows 7 Professional 64
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 0
    NieznanyNieznana

Re: Zmiana nazwy pliku na aktualną datę i czas

Nowy postprzez Cyfrowy Baron » poniedziałek, 25 sierpnia 2008, 08:43

Zgadza się, dwukropka też nie można używać w nazwie pliku.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4727
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 6 gości

cron