Aracılığıyla paylaş


CFtpFileFind Sınıfı

FTP sunucularının İnternet dosya aramalarına yardımcı olur.

Sözdizimi

class CFtpFileFind : public CFileFind

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CFtpFileFind::CFtpFileFind Bir CFtpFileFind nesne oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
CFtpFileFind::FindFile FTP sunucusunda bir dosya bulur.
CFtpFileFind::FindNextFile Önceki bir FindFile çağrısından dosya aramasına devam eder.
CFtpFileFind::GetFileURL Bulunan dosyanın yolu da dahil olmak üzere URL'yi alır.

Açıklamalar

CFtpFileFind , bir arama başlatan, bir dosyayı bulayan ve dosyayla ilgili URL'yi veya diğer açıklayıcı bilgileri döndüren üye işlevlerini içerir.

İnternet ve arama yapılan yerel dosya için tasarlanan diğer MFC sınıfları arasında CGopherFileFind ve CFileFind bulunur. ile CFtpFileFindbirlikte, bu sınıflar istemcinin sunucu protokolünden veya dosya türünden (yerel bir makine veya uzak sunucu) bağımsız olarak belirli dosyaları bulması için sorunsuz bir mekanizma sağlar. HTTP, aramalar için gereken doğrudan dosya işlemeyi desteklemediğinden HTTP sunucularında arama için MFC sınıfı yoktur.

Ve diğer WinInet sınıflarını kullanma CFtpFileFind hakkında daha fazla bilgi için WinInet ile İnternet Programlama makalesine bakın.

Örnek

Aşağıdaki kod, FTP sunucusunun geçerli dizinindeki tüm dosyaların nasıl numaralandır yapılacağını gösterir.

// 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;
}

Devralma Hiyerarşisi

CObject

CFileFind

CFtpFileFind

Gereksinimler

Üst bilgi: afxinet.h

CFtpFileFind::CFtpFileFind

Bu üye işlevi bir CFtpFileFind nesne oluşturmak için çağrılır.

explicit CFtpFileFind(
    CFtpConnection* pConnection,
    DWORD_PTR dwContext = 1);

Parametreler

pConnection
Nesne işaretçisi CFtpConnection . CInternetSession::GetFtpConnection çağrısı yaparak FTP bağlantısı alabilirsiniz.

dwContext
Nesnenin bağlam tanımlayıcısı CFtpFileFind . Daha fazla bilgi için aşağıdaki açıklamalara bakın.

Açıklamalar

dwContext için varsayılan değer MFC CFtpFileFind tarafından nesneyi oluşturan CInternetSession nesnesinden nesneye CFtpFileFind gönderilir. Bağlam tanımlayıcısını seçtiğiniz bir değere ayarlamak için varsayılanı geçersiz kılabilirsiniz. Bağlam tanımlayıcısı, tanımlandığı nesnede durum sağlamak için CInternetSession::OnStatusCallback'e döndürülür. Bağlam tanımlayıcısı hakkında daha fazla bilgi için İnternet İlk Adımlar: WinInet makalesine bakın.

Örnek

Bu konunun önceki bölümlerinde yer alan sınıfa genel bakış örneğine bakın.

CFtpFileFind::FindFile

Ftp dosyası bulmak için bu üye işlevini çağır.

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

Parametreler

pstrName
Bulunacak dosyanın adını içeren bir dize işaretçisi. NULL ise, çağrı (*) joker karakter araması yapar.

dwFlags
Bu oturumun nasıl işleneceğini açıklayan bayraklar. Bu bayraklar bit düzeyinde OR işleci (|) ile birleştirilebilir ve aşağıdaki gibidir:

  • INTERNET_FLAG_RELOAD Yerel olarak önbelleğe alınmış olsa bile verileri kablodan alın. Bu varsayılan bayraktır.

  • INTERNET_FLAG_DONT_CACHE Verileri yerel olarak veya herhangi bir ağ geçidinde önbelleğe alma.

  • INTERNET_FLAG_RAW_DATA Ham verileri ( FTP için WIN32_FIND_DATA yapıları) döndürmek için varsayılanı geçersiz kılın.

  • INTERNET_FLAG_SECURE Güvenli Yuva Katmanı veya PCT ile kablo üzerindeki işlemlerin güvenliğini sağlar. Bu bayrak yalnızca HTTP istekleri için geçerlidir.

  • INTERNET_FLAG_EXISTING_CONNECT Mümkünse, her istek için yeni bir oturum oluşturmak yerine yeni FindFile istekler için sunucuya var olan bağlantıları yeniden kullanın.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0. Genişletilmiş hata bilgilerini almak için Win32 işlevini GetLastError olarak çağırın.

Açıklamalar

İlk FTP dosyasını almak için çağrısı FindFile yaptıktan sonra, sonraki FTP dosyalarını almak için FindNextFile'ı çağırabilirsiniz.

Örnek

Bu konunun önceki örneğine bakın.

CFtpFileFind::FindNextFile

FindFile üye işlevine yapılan çağrıyla başlayan bir dosya aramasına devam etmek için bu üye işlevini çağırın.

virtual BOOL FindNextFile();

Dönüş Değeri

Daha fazla dosya varsa sıfır olmayan; dizinindeki son dosyaysa veya bir hata oluştuysa sıfır. Genişletilmiş hata bilgilerini almak için Win32 işlevini GetLastError olarak çağırın. Bulunan dosya dizindeki son dosyaysa veya eşleşen dosya bulunamıyorsa işlev GetLastError ERROR_NO_MORE_FILES döndürür.

Açıklamalar

Herhangi bir öznitelik işlevini çağırmadan önce bu işlevi en az bir kez çağırmanız gerekir (bkz . CFileFind::FindNextFile).

FindNextFile Win32 işlevini FindNextFile ile sarmalar.

Örnek

Bu konunun önceki bölümlerinde yer alan örne bakın.

CFtpFileFind::GetFileURL

Belirtilen dosyanın URL'sini almak için bu üye işlevini çağırın.

CString GetFileURL() const;

Dönüş Değeri

Evrensel Kaynak Bulucu'nun (URL) dosyası ve yolu.

Açıklamalar

GetFileURL, sonucu URL biçiminde sağlaması dışında CFileFind::GetFilePath üye işlevine benzer. gibi CFileFind::GetFilePath, sonuç dosya adını içermez. Örneğin, file1.txt içinde //moose/dir/file1.txt: bulunan döndürür ftp://moose/dir/.

Ayrıca bkz.

CFileFind Sınıfı
Hiyerarşi Grafiği
CGopherFileFind Sınıfı
CInternetFile Sınıfı
CGopherFile Sınıfı
CHttpFile Sınıfı