티스토리 뷰

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 를 라이브러리에 추가해야함! 

내용 추가2 : download가 잘 안되는데.. 내가 가상 ip라 그런건가?? 잘 모르겠다
내용 추가3 : async!
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=8143&ref=8143 펌



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
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
글 보관함