FtpFindFirstFileA 函式 (wininet.h)
搜尋指定 FTP 工作階段的指定目錄。 檔案和目錄項目會傳回至 WIN32_FIND_DATA 結構中的應用程式。
語法
HINTERNET FtpFindFirstFileA(
[in] HINTERNET hConnect,
[in] LPCSTR lpszSearchFile,
[out] LPWIN32_FIND_DATAA lpFindFileData,
[in] DWORD dwFlags,
[in] DWORD_PTR dwContext
);
參數
[in] hConnect
從 InternetConnect 傳回的 FTP 會話句柄。
[in] lpszSearchFile
Null 終止字串的指標,指定 FTP 伺服器檔案系統的有效目錄路徑或檔名。 字串可以包含通配符,但不允許空白空格。 如果 lpszSearchFile 的值是 NULL ,或它是空字串,則函式會在伺服器上的目前目錄中尋找第一個檔案。
[out] lpFindFileData
可接收所找到檔案或目錄相關信息 之WIN32_FIND_DATA 結構的指標。
[in] dwFlags
控制此函式的行為。 此參數可以是下列值的組合。
INTERNET_FLAG_HYPERLINK
INTERNET_FLAG_NEED_FILE
INTERNET_FLAG_NO_CACHE_WRITE
INTERNET_FLAG_RELOAD
INTERNET_FLAG_RESYNCHRONIZE
[in] dwContext
變數的指標,指定與任何應用程式數據建立關聯之應用程式定義的值。 只有當應用程式已經呼叫 InternetSetStatusCallback 來設定狀態回呼函式時,才會使用此參數。
傳回值
如果成功啟動目錄列舉,則傳回要求的有效句柄,否則傳回 NULL 。 若要取得特定的錯誤訊息,請呼叫 GetLastError。 如果 GetLastError 傳回ERROR_INTERNET_EXTENDED_ERROR,如同函式找不到相符檔案的情況,請呼叫 InternetGetLastResponseInfo 函式以擷取擴充的錯誤文字,如 處理錯誤中所述。
備註
對於 FtpFindFirstFile, 以WIN32_FIND_DATA 結構傳回的檔案時間位於當地時區,而不是以國際標準時間 (UTC) 格式。
FtpFindFirstFile 類似於 FindFirstFile 函式。 不過請注意,指定的 FTP 會話內一次只能發生一個 FtpFindFirstFile 。 因此,列舉會與 FTP 會話句柄相互關聯。 這是因為 FTP 通訊協定只允許每個工作階段的單一目錄列舉。
在呼叫 FtpFindFirstFile ,直到呼叫 InternetCloseHandle 之前,應用程式無法在指定的 FTP 會話句柄上再次呼叫 FtpFindFirstFile 。 如果呼叫該句柄上的 FtpFindFirstFile ,函式會失敗 ,並ERROR_FTP_TRANSFER_IN_PROGRESS。 呼叫應用程式使用 FtpFindFirstFile 所傳回的 HINTERNET 句柄完成之後,必須使用 InternetCloseHandle 函式來關閉它。
使用 FtpFindFirstFile 開始目錄列舉之後, InternetFindNextFile 函式可用來繼續列舉。
因為 FTP 通訊協議沒有列舉的標準方法,所以檔案的一些常見資訊,例如檔案建立日期和時間,不一定可用或正確。 發生這種情況時, FtpFindFirstFile 和 InternetFindNextFile 會根據可用資訊填入無法使用的資訊,並提供最佳猜測。 例如,建立和上次存取日期通常與檔案的修改日期相同。
應用程式無法在對 FtpOpenFile 和 InternetCloseHandle 的呼叫之間呼叫 FtpFindFirstFile。
就像 WinINet API 的其他所有層面一樣,無法在 DllMain 或全域物件的建構函式和解構函式內安全地呼叫此函式。
注意
wininet.h 標頭會根據 UNICODE 預處理器常數的定義,將 FtpFindFirstFile 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wininet.h |
程式庫 | Wininet.lib |
Dll | Wininet.dll |