baran860 Temat założony przez niniejszego użytkownika |
[C++] Dodanie daty do nazwy pliku przesyłanego na FTP » 2014-04-21 14:25:06 Siema, mam taki oto programik: #include "stdafx.h" #include "Win32Project2.h" #include <Windows.h> #include <wininet.h>
using namespace std; int WyslijPlik() { HINTERNET hInternet; HINTERNET hFtpSession; if( InternetAttemptConnect( 0 ) == ERROR_SUCCESS ) cout << "Internet dostepny, wysylanie pliku..\n" << endl; else { cout << "Internet niedostepny.\n" << endl; return - 1; } hInternet = InternetOpen( NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0 ); if( hInternet != NULL ) { hFtpSession = InternetConnect( hInternet, L"ftp.baran860work.za.pl", INTERNET_DEFAULT_FTP_PORT, L"baran860work.za.pl", L"haslo_ftp", INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 ); if( hFtpSession != NULL ) { if( FtpPutFile( hFtpSession, L"plik_do_wyslania.txt", L"nazwa_pliku_na_serwerze.txt", FTP_TRANSFER_TYPE_BINARY, 0 ) ) { InternetCloseHandle( hFtpSession ); InternetCloseHandle( hInternet ); } else { cout << "Nie wyslalem pliku." << endl; return - 1; } } else return - 1; } else return - 1; cout << "Pomyslnie wyslano plik.\n" << endl; return 0; } int main() { WyslijPlik(); return 0; }
Program po uruchomieniu "pobiera" plik "plik_do_wyslania.txt" i następnie wysyła go na serwer ze zmienioną nazwą ("nazwa_pliku_na_serwerze.txt") jednak ja bym chciał aby nazwą pliku na serwerze była aktualna data, nie ważne w jakim formacie. Np. "plik_"+"2014.04.21 13;40"+".txt"; Bardzo proszę o pomoc oraz wzięcie pod uwagę iż jestem początkujący. |
|
SeaMonster131 |
» 2014-04-21 14:40:58 |
|
baran860 Temat założony przez niniejszego użytkownika |
» 2014-04-21 15:09:05 #include "stdafx.h" #include "Win32Project2.h" #include <Windows.h> #include <wininet.h>
using namespace std; int WyslijPlik() { HINTERNET hInternet; HINTERNET hFtpSession; SYSTEMTIME time; GetSystemTime( & time ); char buf[ 16 ]; sprintf_s( buf, "plik_%.4d-%.2d-%.2d.txt", time.wYear, time.wMonth, time.wDay ); if( InternetAttemptConnect( 0 ) == ERROR_SUCCESS ) cout << "Internet dostepny, wysylanie pliku..\n" << endl; else { cout << "Internet niedostepny.\n" << endl; return - 1; } hInternet = InternetOpen( NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0 ); if( hInternet != NULL ) { hFtpSession = InternetConnect( hInternet, L"ftp.baran860work.za.pl", INTERNET_DEFAULT_FTP_PORT, L"baran860work.za.pl", L"haslo_ftp", INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 ); if( hFtpSession != NULL ) { if( FtpPutFile( hFtpSession, L"sysell.txt", buf, FTP_TRANSFER_TYPE_BINARY, 0 ) ) { InternetCloseHandle( hFtpSession ); InternetCloseHandle( hInternet ); } else { cout << "Nie wyslalem pliku." << endl; return - 1; } } else return - 1; } else return - 1; cout << "Pomyslnie wyslano plik.\n" << endl; return 0; } int main() { WyslijPlik(); return 0; }
Lecz kompilator "krzyczy": Błąd 1 error C2664: „BOOL FtpPutFileW(HINTERNET,LPCWSTR,LPCWSTR,DWORD,DWORD_PTR)” : nie można dokonać konwersji argumentu 3 z „char [16]” do „LPCWSTR” c:\users\baran860\documents\visual studio 2013\projects\win32project2\win32project2\win32project2.cpp 22 1 Win32Project2
oraz 2 IntelliSense: argument of type "char *" is incompatible with parameter of type "LPCWSTR" c:\Users\baran860\Documents\Visual Studio 2013\Projects\Win32Project2\Win32Project2\Win32Project2.cpp 22 47 Win32Project2
W jaki sposób muszę podać tego stringa do funkcji FtpPutFile bo przedtem udało mi się "wyguglować" że wystarczy przedrostek L |
|
MrPoxipol |
» 2014-04-21 15:39:40 |
|
baran860 Temat założony przez niniejszego użytkownika |
» 2014-04-21 15:57:03 Problem rozwiązany. Udało się z waszą pomocą oraz z pomocą użytkowników z MPCForum: http://www.mpcforum.pl/topic/1191125-cproblem-z-nadaniem-daty-do-nazwy-pliku
W linku wyżej jest rozwiązanie. |
|
« 1 » |