FTP 서버에 올라가 있는 파일 읽어오기
View 18,173 | 작성일2010.10.15 16:32
관련링크
본문
FTP 서버에 올려져있는 파일을 엑세스 하기 위한 함수들은...
1. 인터넷을 열어주시고
InternetOpen(....);
2. 인터넷에 FTP모드로 커넥션 해줍니다.
InternetConnect(....);
3. 다음은 FTP내부의 파일을 열고요.
FtpOpenFile(....);
4. FTP에서 오픈한 파일 사이즈를 얻어냅니다.
요거는 파일을 하드에 저장할때나 메모리에 집어넣을때 정확한 사이즈를 알기위함 입니다.
FtpGetFileSize(....);
5. FTP 파일을 메모리 버퍼에 얻어냅니다.
InternetReadFile(....);
6. 읽은 사이즈 만큼 어느 파일에 집어넣습니다.
WriteFile(....);
7. 그후 핸들들을 닫아줍니다~
좀 복잡하긴 합니다만 어려운 경우는 아닙니다. 저 함수들의 파라미터는 msdn 을 직접 찾아보시면 좋죠.
몇가지 Tip 이 있습니다.
몇가지 Tip 이 있습니다.
#몇가지 팁#
1. InternetConnect 할때
hFtp=InternetConnect(
hInternet,
m_ServerIP),
m_PortNum,
m_UserID,
m_UserPassword,
INTERNET_SERVICE_FTP,
INTERNET_FLAG_PASSIVE,
0);
패시브 모드일경우 빨간색을 꼭 써주셔야 하고요. 엑티브 모드면 0 을 써주셔야 합니다.
파란색 포트넘버는 기본 정의된 게 있습니다.
이외의 포트를 사용하지 않는다면 그냥 uint 값으로 직접 넣어줍니다.
2. 모든 internet 함수들은 엑티브 모드일때 무한대기 탈 수 있습니다.
InternetReadFile( hFtpFile, (void*)filebuf, filesize, &readsize);
예를 들면 이런경우 파일을 못읽으면 무한 대기 탈 수 있습니다. try catch 써주세요.
3. FtpGetFileSize는 리턴값이 사이즈 입니다.
파라미터 두번째에 포인터로 들어가는 부분은 옵션입니다. 거기선 리턴되는거 없습니다;;;