다음을 통해 공유


FtpGetFileA 함수(wininet.h)

FTP 서버에서 파일을 검색하고 지정된 파일 이름 아래에 저장하여 프로세스에 새 로컬 파일을 만듭니다.

구문

BOOL FtpGetFileA(
  [in] HINTERNET hConnect,
  [in] LPCSTR    lpszRemoteFile,
  [in] LPCSTR    lpszNewFile,
  [in] BOOL      fFailIfExists,
  [in] DWORD     dwFlagsAndAttributes,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

매개 변수

[in] hConnect

FTP 세션에 대한 핸들입니다.

[in] lpszRemoteFile

검색할 파일의 이름을 포함하는 null로 끝나는 문자열에 대한 포인터입니다.

[in] lpszNewFile

로컬 시스템에서 만들 파일의 이름을 포함하는 null로 끝나는 문자열에 대한 포인터입니다.

[in] fFailIfExists

지정된 이름의 로컬 파일이 이미 있는 경우 함수가 계속 진행되어야 하는지 여부를 나타냅니다. fFailIfExistsTRUE이고 로컬 파일이 있으면 FtpGetFile이 실패합니다.

[in] dwFlagsAndAttributes

새 파일에 대한 파일 특성입니다. 이 매개 변수는 CreateFile 함수에서 사용하는 FILE_ATTRIBUTE_* 플래그의 조합일 수 있습니다.

[in] dwFlags

함수가 파일 다운로드를 처리하는 방법을 제어합니다. 첫 번째 플래그 값 집합은 전송이 발생하는 조건을 나타냅니다. 이러한 전송 형식 플래그는 캐싱을 제어하는 두 번째 플래그 집합과 함께 사용할 수 있습니다.

애플리케이션은 이러한 전송 형식 값 중 하나를 선택할 수 있습니다.

의미
FTP_TRANSFER_TYPE_ASCII
FTP의 ASCII(형식 A) 전송 방법을 사용하여 파일을 전송합니다. 컨트롤 및 서식 지정 정보는 로컬 해당 항목으로 변환됩니다.
FTP_TRANSFER_TYPE_BINARY
FTP의 이미지(Type I) 전송 방법을 사용하여 파일을 전송합니다. 파일은 변경 없이 존재하는 그대로 전송됩니다. 기본 전송 방법입니다.
FTP_TRANSFER_TYPE_UNKNOWN
기본값은 FTP_TRANSFER_TYPE_BINARY.
INTERNET_FLAG_TRANSFER_ASCII
파일을 ASCII로 전송합니다.
INTERNET_FLAG_TRANSFER_BINARY
파일을 이진 파일로 전송합니다.
 

다음 플래그는 이 파일의 캐싱을 수행하는 방법을 결정합니다. 다음 플래그의 조합은 전송 형식 플래그와 함께 사용할 수 있습니다.

의미
INTERNET_FLAG_HYPERLINK
네트워크에서 항목을 다시 로드할지 여부를 결정할 때 만료 시간이 없고 서버에서 반환된 LastModified 시간이 없는 경우 강제로 다시 로드합니다.
INTERNET_FLAG_NEED_FILE
파일을 캐시할 수 없는 경우 임시 파일을 만듭니다.
INTERNET_FLAG_RELOAD
캐시가 아니라 원본 서버에서 요청한 파일, 개체 또는 디렉터리 목록을 다운로드합니다.
INTERNET_FLAG_RESYNCHRONIZE
리소스가 마지막으로 다운로드된 이후 수정된 경우 HTTP 리소스를 다시 로드합니다. 모든 FTP 리소스가 다시 로드됩니다.

Windows XP 및 Windows Server 2003 R2 이하: Gopher 리소스도 다시 로드됩니다.

[in] dwContext

이 검색을 모든 애플리케이션 데이터와 연결하는 애플리케이션 정의 값이 포함된 변수에 대한 포인터입니다. 이는 애플리케이션이 이미 InternetSetStatusCallback을 호출하여 상태 콜백 함수를 설정한 경우에만 사용됩니다.

반환 값

성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 특정 오류 메시지를 얻으려면 GetLastError를 호출합니다.

설명

FtpGetFile 은 FTP 서버에서 파일을 읽고 로컬로 저장하는 것과 관련된 모든 부기 및 오버헤드를 처리하는 개략적인 루틴입니다. 파일 데이터만 검색해야 하거나 파일 전송을 면밀히 제어해야 하는 애플리케이션은 FtpOpenFileInternetReadFile 함수를 사용해야 합니다.

dwFlags 매개 변수가 FTP_TRANSFER_TYPE_ASCII 지정하는 경우 파일 데이터의 변환은 컨트롤 및 서식 문자를 로컬 형식으로 변환합니다. 기본 전송은 이진 모드입니다. 여기서 파일은 서버에 저장된 것과 동일한 형식으로 다운로드됩니다.

lpszRemoteFilelpszNewFile은 모두 현재 디렉터리를 기준으로 부분적으로 또는 정규화된 파일 이름일 수 있습니다.

WinINet API의 다른 모든 측면과 마찬가지로 이 함수는 DllMain 내에서 또는 전역 개체의 생성자 및 소멸자에서 안전하게 호출할 수 없습니다.

참고 WinINet은 서버 구현을 지원하지 않습니다. 또한 서비스에서 사용하면 안 됩니다. 서버 구현 또는 서비스의 경우 WinHTTP(Microsoft Windows HTTP 서비스)를 사용합니다.
 

참고

wininet.h 헤더는 FTpGetFile을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wininet.h
라이브러리 Wininet.lib
DLL Wininet.dll

추가 정보

FTP 세션

WinINet 함수