티스토리 뷰
FTP를 사용 할수 있게 처음 설정 하는부분과
FTP에 파일을 Upload 한후
FTP에 Upload 한 파일을 다시 Download 한후
FTP에 Upload 한 파일을 Delete 하는
간단한 예제 입니다.
장황한 설명보다는 간단하게 만들어 놓은 예제가 공부하기 쉬울거 같아 몇자 글적여 봅니다. ^^
함수 각각의 옵션이나 설명은 MSDN을 참조하세요 ^^
// FTP Open
HINTERNET m_hOpen = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL);
if(NULL == m_hOpen)
{
AfxMessageBox("Open Error");
return;
}
HINTERNET m_hConnect = InternetConnect(m_hOpen,
"100.100.100.1",
INTERNET_DEFAULT_FTP_PORT,
"USER_ID",
"USER_PASSWORD",
INTERNET_SERVICE_FTP,
0, 0);
if(NULL == m_hConnect)
{
AfxMessageBox("Connect Error");
InternetCloseHandle(m_hOpen);
return;
}
// FTP Open End
// FTP Set Current Directory
if(!FtpSetCurrentDirectory(m_hConnect, "/DirName"))
{
AfxMessageBox("Set Current Directory Error");
InternetCloseHandle(m_hConnect);
InternetCloseHandle(m_hOpen);
return;
}
// FTP Set Current Directory
// FTP Upload ( C:\Test.Dat 파일을 FTP의 Set Current Directory 한 곳에 Test.Dat 이름으로 Upload 함 )
if(!FtpPutFile(m_hConnect, "C:\\Test.Dat", "Test.Dat", INTERNET_FLAG_TRANSFER_BINARY | INTERNET_FLAG_RELOAD, 0))
{
AfxMessageBox("FTP Upload Error");
InternetCloseHandle(m_hConnect);
InternetCloseHandle(m_hOpen);
return;
}
// FTP Upload End
// FTP Download ( FTP의 Set Current Directory 한 곳에 Test.Dat 파일을 C:\Test.Dat 이름으로 Download 함 )
if(!FtpGetFile(m_hConnect, "C:\\Test.Dat", "Test.Dat", FALSE , NULL, INTERNET_FLAG_TRANSFER_BINARY | INTERNET_FLAG_RELOAD, 0))
{
AfxMessageBox("FTP Download Error");
InternetCloseHandle(m_hConnect);
InternetCloseHandle(m_hOpen);
return;
}
// FTP Download End
// FTP Delete ( FTP의 Set Current Directory 한 곳에 Test.Dat 파일을 삭제함 )
if(!FtpDeleteFile(m_hConnect, "Test.Dat"))
{
AfxMessageBox("FTP Delete Error");
InternetCloseHandle(m_hConnect);
InternetCloseHandle(m_hOpen);
return;
}
// FTP Delete End
// FTP Close
if(m_hOpen)
{
InternetCloseHandle(m_hOpen);
m_hOpen = NULL;
}
if(m_hConnect)
{
InternetCloseHandle(m_hConnect);
m_hConnect = NULL;
}
// FTP Close End
내용 추가 : wininet.lib 를 라이브러리에 추가해야함!
내용 추가3 : async!
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=8143&ref=8143 펌
'Language > C C++' 카테고리의 다른 글
C++ Vector와 List의 사용 (0) | 2010.09.07 |
---|---|
UAC 내에서 한시적으로 Admin권한 상승 시키기 (0) | 2010.07.08 |
라이브러리 파일(LIB, DLL) 추가법 (0) | 2010.07.06 |
C++의 virtual 키워드 (0) | 2010.06.24 |
c에서 파일 입출력 쉽게 하기 (0) | 2010.06.04 |
헤더에서 컴파일러 구분하기 (0) | 2010.04.27 |
함수 이름 앞에 ::가 붙는 경우 (0) | 2010.04.07 |
extern "C"와 function overload (0) | 2009.09.02 |
- Total
- Today
- Yesterday
- 리눅스
- 음악
- jni강좌
- Troubleshooting
- kering
- it
- AWS
- database
- gcc
- db
- linux
- driver
- 드라이버
- API
- android
- Python
- NDK
- Quiz
- algorithm
- C
- java
- MFC
- jni
- Visual C++
- 프로그래밍
- C++
- Cloud
- winapi
- source
- 안드로이드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |