分享方式:


CGopherFileFind 類別

協助網際網路檔案搜尋 Gopher 伺服器。

注意

類別 CGopherConnectionCGopherFileCGopherFileFindCGopherLocator 和 其成員已被取代,因為它們無法在 Windows XP 平台上運作,但他們會繼續在舊版平台上運作。

語法

class CGopherFileFind : public CFileFind

成員

公用建構函式

名稱 描述
CGopherFileFind::CGopherFileFind 建構 CGopherFileFind 物件。

公用方法

名稱 描述
CGopherFileFind::FindFile 在 gopher 伺服器上尋找檔案。
CGopherFileFind::FindNextFile 繼續從先前呼叫 FindFile 的檔案搜尋。
CGopherFileFind::GetCreationTime 取得建立指定檔案的時間。
CGopherFileFind::GetLastAccessTime 取得上次存取指定檔案的時間。
CGopherFileFind::GetLastWriteTime 取得上次寫入指定檔案的時間。
CGopherFileFind::GetLength 取得所找到檔案的長度,以位元組為單位。
CGopherFileFind::GetLocator CGopherLocator取得物件。
CGopherFileFind::GetScreenName 取得 Gopher 畫面的名稱。
CGopherFileFind::IsDots 在逐一查看檔案時,測試目前目錄和父目錄標記。

備註

CGopherFileFind 包含開始搜尋、尋找檔案,以及傳回檔案 URL 的成員函式。

針對搜尋因特網和本機檔案而設計的其他 MFC 類別包括 CFtpFileFindCFileFind。 這些類別一 CGopherFileFind起提供無縫機制,讓用戶尋找特定檔案,而不論伺服器通訊協定、檔案類型或位置為何(本機計算機或遠端伺服器。請注意,沒有 MFC 類別可供在 HTTP 伺服器上搜尋,因為 HTTP 不支援搜尋所需的直接檔案操作。

注意

CGopherFileFind 不支援其基類 CFileFind 的下列成員函式:

此外,搭配 CGopherFileFind使用 時, CFileFind 成員函式 IsDots 一律為 FALSE。

如需如何使用 CGopherFileFind 和其他 WinInet 類別的詳細資訊,請參閱使用 WinInet 進行因特網程式設計一文

繼承階層架構

CObject

CFileFind

CGopherFileFind

需求

標頭: afxinet.h

CGopherFileFind::CGopherFileFind

呼叫這個成員函式來建構 CGopherFileFind 物件。

explicit CGopherFileFind(
    CGopherConnection* pConnection,
    DWORD_PTR dwContext = 1);

參數

pConnection
CGopherConnection 物件的指標

dwContext
作業的內容識別碼。 如需 dwContext 的詳細資訊請參閱

備註

dwContext預設值是由 MFC 從建立CGopherFileFind物件的 CInternetSession 物件傳送至 CGopherFileFind 物件。 當您建構 CGopherFileFind 物件時,可以覆寫預設值,將內容識別符設定為您選擇的值。 內容標識符會傳回至 CInternetSession::OnStatusCallback ,以提供識別物件的狀態。 如需內容標識碼的詳細資訊,請參閱因特網第一個步驟:WinInet 一文

CGopherFileFind::FindFile

呼叫此成員函式以尋找 gopher 檔案。

virtual BOOL FindFile(
    CGopherLocator& refLocator,
    LPCTSTR pstrString,
    DWORD dwFlags = INTERNET_FLAG_RELOAD);

virtual BOOL FindFile(
    LPCTSTR pstrString,
    DWORD dwFlags = INTERNET_FLAG_RELOAD);

參數

refLocator
CGopherLocator 對象的參考

pstrString
包含檔名之字串的指標。

dwFlags
描述如何處理此會話的旗標。 有效的旗標為:

  • INTERNET_FLAG_RELOAD從遠端伺服器取得數據,即使它在本機快取也一樣。

  • INTERNET_FLAG_DONT_CACHE請勿在本機或任何閘道中快取數據。

  • INTERNET_FLAG_SECURE使用安全套接字層或PCT線上路上要求安全交易。 此旗標僅適用於 HTTP 要求。

  • INTERNET_FLAG_USE_EXISTING可能的話,請針對新 FindFile 要求重複使用伺服器的現有連線,而不是為每個要求建立新的會話。

傳回值

如果成功則為非零;否則為 0。 若要取得擴充的錯誤資訊,請呼叫 Win32 函式 GetLastError

備註

呼叫 FindFile 以擷取第一個 gopher 物件之後,您可以呼叫 FindNextFile 來擷取後續的 gopher 檔案。

CGopherFileFind::FindNextFile

呼叫此成員函式,以繼續從 CGopherFileFind::FindFile 呼叫開始的檔案搜尋。

virtual BOOL FindNextFile();

傳回值

如果有更多檔案,則為非零;如果找到的檔案是目錄中的最後一個檔案,或發生錯誤,則為零。 若要取得擴充的錯誤資訊,請呼叫 Win32 函式 GetLastError。 如果找到的檔案是目錄中的最後一個檔案,或者找不到相符的檔案,函 GetLastError 式會傳回ERROR_NO_MORE_FILES。

CGopherFileFind::GetCreationTime

取得目前檔案的建立時間。

virtual BOOL GetCreationTime(FILETIME* pTimeStamp) const;
virtual BOOL GetCreationTime(CTime& refTime) const;

參數

pTimeStamp
FILETIME 結構的指標,其中包含檔案建立的時間。

refTime
CTime 對象的參考

傳回值

如果成功,則為非零;如果失敗,則為 0。 GetCreationTime只有在這個CGopherFileFind物件上從未呼叫 FindNextFile,才會傳回 0。

備註

您至少必須在呼叫 GetCreationTime之前呼叫 FindNextFile 一次。

注意

並非所有文件系統都使用相同的語意來實作此函式傳回的時間戳。 如果基礎文件系統或伺服器不支援保留 time 屬性,此函式可能會傳回其他時間戳函式所傳回的相同值。 如需時間格式的相關信息,請參閱WIN32_FIND_DATA結構。 在某些操作系統上,傳回的時間位於本機計算機的時區,檔案所在的位置。 如需詳細資訊,請參閱 Win32 FileTimeToLocalFileTime API。

CGopherFileFind::GetLastAccessTime

取得上次存取指定檔案的時間。

virtual BOOL GetLastAccessTime(CTime& refTime) const;
virtual BOOL GetLastAccessTime(FILETIME* pTimeStamp) const;

參數

refTime
CTime 對象的參考

pTimeStamp
FILETIME 結構的指標,其中包含上次存取檔案的時間。

傳回值

如果成功,則為非零;如果失敗,則為 0。 GetLastAccessTime只有在這個CGopherFileFind物件上從未呼叫 FindNextFile,才會傳回 0。

備註

您至少必須在呼叫 GetLastAccessTime之前呼叫 FindNextFile 一次。

注意

並非所有文件系統都使用相同的語意來實作此函式傳回的時間戳。 如果基礎文件系統或伺服器不支援保留 time 屬性,此函式可能會傳回其他時間戳函式所傳回的相同值。 如需時間格式的相關信息,請參閱WIN32_FIND_DATA結構。 在某些操作系統上,傳回的時間位於本機計算機的時區,檔案所在的位置。 如需詳細資訊,請參閱 Win32 FileTimeToLocalFileTime API。

CGopherFileFind::GetLastWriteTime

取得上次變更檔案的時間。

virtual BOOL GetLastWriteTime(FILETIME* pTimeStamp) const;
virtual BOOL GetLastWriteTime(CTime& refTime) const;

參數

pTimeStamp
FILETIME 結構的指標,其中包含上次寫入檔案的時間。

refTime
CTime 對象的參考

傳回值

如果成功,則為非零;如果失敗,則為 0。 GetLastWriteTime只有在這個CGopherFileFind物件上從未呼叫 FindNextFile,才會傳回 0。

備註

您至少必須在呼叫 GetLastWriteTime之前呼叫 FindNextFile 一次。

注意

並非所有文件系統都使用相同的語意來實作此函式傳回的時間戳。 如果基礎文件系統或伺服器不支援保留 time 屬性,此函式可能會傳回其他時間戳函式所傳回的相同值。 如需時間格式的相關信息,請參閱WIN32_FIND_DATA結構。 在某些操作系統上,傳回的時間位於本機計算機的時區,檔案所在的位置。 如需詳細資訊,請參閱 Win32 FileTimeToLocalFileTime API。

CGopherFileFind::GetLength

呼叫這個成員函式,以取得所找到檔案的長度,以位元組為單位。

virtual ULONGLONG GetLength() const;

傳回值

所找到檔案的長度,以位元組為單位。

備註

GetLength 會使用 Win32 結構 WIN32_FIND_DATA ,以位元組為單位取得檔案大小的值。

注意

從 MFC 7.0 起, GetLength 支援 64 位整數類型。 先前以這個較新版本連結庫建置的程式代碼可能會導致截斷警告。

範例

請參閱 CFile::GetLength 的範例(基類實作)。

CGopherFileFind::GetLocator

呼叫此成員函式以取得 FindFile 用來尋找 gopher 檔案的 CGopherLocator 物件。

CGopherLocator GetLocator() const;

傳回值

CGopherLocator 物件。

CGopherFileFind::GetScreenName

呼叫此成員函式以取得 gopher 畫面的名稱。

CString GetScreenName() const;

傳回值

gopher 畫面的名稱。

CGopherFileFind::IsDots

在逐一查看檔案時,測試目前目錄和父目錄標記。

virtual BOOL IsDots() const;

傳回值

如果找到的檔案名稱為 「.」 或 「..」 ,則為非零,表示找到的檔案實際上是目錄。 否則為 0。

備註

您至少必須在呼叫 IsDots之前呼叫 FindNextFile 一次。

另請參閱

CFileFind 類別
階層架構圖表
CFtpFileFind 類別
CFileFind 類別
CInternetFile 類別
CGopherFile 類別
CHttpFile 類別