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 CFtpFileFind
birlikte, 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
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 yeniFindFile
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ı