Bagikan melalui


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

CObject

CFileFind

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 baru FindFile 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::GetFilePathSeperti 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