Kelas CFtpFileFind
Bantuan dalam pencarian file Internet server FTP.
Sintaks
class CFtpFileFind : public CFileFind
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CFtpFileFind::CFtpFileFind | Membuat CFtpFileFind objek. |
Metode Publik
Nama | Deskripsi |
---|---|
CFtpFileFind::FindFile | Menemukan file pada server FTP. |
CFtpFileFind::FindNextFile | Melanjutkan pencarian file dari panggilan sebelumnya ke FindFile. |
CFtpFileFind::GetFileURL | Mendapatkan URL, termasuk jalur, dari file yang ditemukan. |
Keterangan
CFtpFileFind
menyertakan fungsi anggota yang memulai pencarian, menemukan file, dan mengembalikan URL atau informasi deskriptif lainnya tentang file.
Kelas MFC lainnya yang dirancang untuk Internet dan file lokal yang dicari termasuk CGopherFileFind dan CFileFind. Bersama dengan CFtpFileFind
, kelas-kelas ini menyediakan mekanisme yang mulus bagi klien untuk menemukan file tertentu, terlepas dari protokol server atau jenis file (baik komputer lokal atau server jarak jauh). Tidak ada kelas MFC untuk mencari di server HTTP karena HTTP tidak mendukung manipulasi file langsung yang diperlukan untuk pencarian.
Untuk informasi selengkapnya tentang cara menggunakan CFtpFileFind
dan kelas WinInet lainnya, lihat artikel Pemrograman Internet dengan WinInet.
Contoh
Kode berikut menunjukkan cara menghitung semua file di direktori server FTP saat ini.
// create a session object to initialize WININET library
// Default parameters mean the access method in the registry
// (that is, set by the "Internet" icon in the Control Panel)
// will be used.
CInternetSession sess(_T("My FTP Session"));
CFtpConnection *pConnect = NULL;
try
{
// Request a connection to ftp.microsoft.com. Default
// parameters mean that we'll try with username = ANONYMOUS
// and password set to the machine name @ domain name
pConnect = sess.GetFtpConnection(_T("ftp.microsoft.com"));
// use a file find object to enumerate files
CFtpFileFind finder(pConnect);
// start looping
BOOL bWorking = finder.FindFile(_T("*"));
while (bWorking)
{
bWorking = finder.FindNextFile();
_tprintf_s(_T("%s\n"), (LPCTSTR)finder.GetFileURL());
}
}
catch (CInternetException *pEx)
{
TCHAR sz[1024];
pEx->GetErrorMessage(sz, 1024);
_tprintf_s(_T("ERROR! %s\n"), sz);
pEx->Delete();
}
// if the connection is open, close it
if (pConnect != NULL)
{
pConnect->Close();
delete pConnect;
}
Hierarki Warisan
CFtpFileFind
Persyaratan
Header: afxinet.h
CFtpFileFind::CFtpFileFind
Fungsi anggota ini dipanggil untuk membuat CFtpFileFind
objek.
explicit CFtpFileFind(
CFtpConnection* pConnection,
DWORD_PTR dwContext = 1);
Parameter
pConnection
Penunjuk ke CFtpConnection
objek. Anda dapat memperoleh koneksi FTP dengan memanggil CInternetSession::GetFtpConnection.
dwContext
Pengidentifikasi konteks untuk CFtpFileFind
objek. Untuk informasi selengkapnya, lihat komentar berikut ini.
Keterangan
Nilai default untuk dwContext dikirim oleh MFC ke CFtpFileFind
objek dari objek CInternetSession yang membuat CFtpFileFind
objek. Anda dapat mengambil alih default untuk mengatur pengidentifikasi konteks ke nilai yang Anda pilih. Pengidentifikasi konteks dikembalikan ke CInternetSession::OnStatusCallback untuk memberikan status pada objek yang diidentifikasi. Lihat artikel Langkah Pertama Internet: WinInet untuk informasi selengkapnya tentang pengidentifikasi konteks.
Contoh
Lihat contoh di gambaran umum kelas sebelumnya dalam topik ini.
CFtpFileFind::FindFile
Panggil fungsi anggota ini untuk menemukan file FTP.
virtual BOOL FindFile(
LPCTSTR pstrName = NULL,
DWORD dwFlags = INTERNET_FLAG_RELOAD);
Parameter
pstrName
Penunjuk ke string yang berisi nama file yang akan ditemukan. Jika NULL, panggilan akan melakukan pencarian kartubebas (*).
dwFlags
Bendera yang menjelaskan cara menangani sesi ini. Bendera ini dapat dikombinasikan dengan operator BITWISE OR (|
) dan sebagai berikut:
INTERNET_FLAG_RELOAD
Dapatkan data dari kawat bahkan jika di-cache secara lokal. Ini adalah bendera default.INTERNET_FLAG_DONT_CACHE
Jangan cache data, baik secara lokal atau di gateway apa pun.INTERNET_FLAG_RAW_DATA
Ambil alih default untuk mengembalikan data mentah ( struktur WIN32_FIND_DATA untuk FTP).INTERNET_FLAG_SECURE
Mengamankan transaksi pada kawat dengan Secure Sockets Layer atau PCT. Bendera ini hanya berlaku untuk permintaan HTTP.INTERNET_FLAG_EXISTING_CONNECT
Jika memungkinkan, gunakan kembali koneksi yang ada ke server untuk permintaan baruFindFile
alih-alih membuat sesi baru untuk setiap permintaan.
Tampilkan Nilai
Bukan nol jika berhasil; jika tidak, 0. Untuk mendapatkan informasi kesalahan yang diperluas, panggil fungsi Win32 GetLastError.
Keterangan
Setelah memanggil FindFile
untuk mengambil file FTP pertama, Anda dapat memanggil FindNextFile untuk mengambil file FTP berikutnya.
Contoh
Lihat contoh sebelumnya dalam topik ini.
CFtpFileFind::FindNextFile
Panggil fungsi anggota ini untuk melanjutkan pencarian file dimulai dengan panggilan ke fungsi anggota FindFile .
virtual BOOL FindNextFile();
Tampilkan Nilai
Nonzero jika ada lebih banyak file; nol jika file yang ditemukan adalah yang terakhir dalam direktori atau jika terjadi kesalahan. Untuk mendapatkan informasi kesalahan yang diperluas, panggil fungsi Win32 GetLastError. Jika file yang ditemukan adalah file terakhir di direktori, atau jika tidak ada file yang cocok yang dapat ditemukan, GetLastError
fungsi mengembalikan ERROR_NO_MORE_FILES.
Keterangan
Anda harus memanggil fungsi ini setidaknya sekali sebelum memanggil fungsi atribut apa pun (lihat CFileFind::FindNextFile).
FindNextFile
membungkus fungsi Win32 FindNextFile.
Contoh
Lihat contoh sebelumnya dalam topik ini.
CFtpFileFind::GetFileURL
Panggil fungsi anggota ini untuk mendapatkan URL file yang ditentukan.
CString GetFileURL() const;
Tampilkan Nilai
File dan jalur Universal Resource Locator (URL).
Keterangan
GetFileURL
mirip dengan fungsi anggota CFileFind::GetFilePath kecuali menyediakan hasil dalam format URL. CFileFind::GetFilePath
Seperti halnya , hasilnya tidak menyertakan nama file. Misalnya, file1.txt
yang terletak dalam //moose/dir/file1.txt:
pengembalian ftp://moose/dir/
.
Lihat juga
Kelas CFileFind
Bagan Hierarki
Kelas CGopherFileFind
Kelas CInternetFile
Kelas CGopherFile
Kelas CHttpFile