Ücretsiz FTP Kitaplığı [kapalı]


Yanıtlar:


76

Daha önce System.Net.FtpClient olarak bilinen FluentFTP'yi düşünebilirsiniz .

The MIT License altında yayınlandı ve NuGet'te (FluentFTP) kullanılabilir.


6
TEŞEKKÜR EDERİM!!! Bu gerçekten çok iyi çalışıyor! dizini doğru tarih saatiyle listeler :)))) ve hızlıdır! örnek kod: FtpClient ftp = new FtpClient (txtUsername.Text, txtPassword.Text, txtFTPAddress.Text); FtpListItem[] items = ftp.GetListing();//here you can get list with type, name, modified date and other properties. FtpFile file = new FtpFile(ftp, "8051812.xml");//file to get file.Download("c:\\8051812.xml");//download file.Name = "8051814.xml";//change name to get new file.Download("c:\\8051814.xml"); ftp.Disconnect();//close
Zviadi

1
Derlenen kitaplıkların .NET 3 için olduğunu, ancak kodun 2.0'a dönüştürmek için önemsiz olduğunu unutmayın
Deanna

3
NuGet paketi de mevcuttur: System.Net.FtpClient
Jeroen K

1
Dosya yerine biraz daha kolay (şimdi?) İndir, Akış s = bağlantı.OpenOkuma (dosya adı)
Jeroen K

2
Doğru, ancak daha önce olduğu gibi aynı sözdizimine sahip olmak için kendi uzantı yöntemlerinizi kolayca ekleyebilirsiniz. İşte benimki: pastebin.com/FiKMrH76
Erwin Mayer

20

Neden .NET çerçevesiyle birlikte gelen kitaplıkları kullanmıyorsunuz: http://msdn.microsoft.com/en-us/library/ms229718.aspx ?

DÜZENLEME: 2019 Nisan, https://stackoverflow.com/users/1527/ Bu yanıt artık geçerli değil. Diğer yanıtlar Microsoft tarafından onaylanmıştır.

Artık kullanılmalarını önermeyen Microsoft tarafından tasarlandılar:

Yeni geliştirme için FtpWebRequest sınıfını kullanmanızı önermiyoruz. FtpWebRequest'e alternatifler ve daha fazla bilgi için bkz.WebRequest GitHub'da kullanılmamalıdır. ( https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest?view=netframework-4.7.2 )

'WebRequest kullanılmamalıdır' sayfası da kitaplıkların kesin listesi olarak bu soruya işaret ediyor!


3
% 100 emin değilim ama bu sınıflar her istekte yeniden bağlanmıyor mu? Eğer durum buysa, performans kötüleşir ..
Peter

22
FtpWebRequestSınıf yalnızca gerçekten basit için çalışır, bu tür indirme veya dosyaları tek tek yükleme gibi istek / yanıt desen üzerinde modellenebilir işlemsel FTP eylemler. Bir FTP klasör yapısı oluşturmak veya aynı oturumda karşıya yüklemek ve indirmek gibi görevleri gerçekleştirmek için kullanmak çok zordur.
Dai

1
"Olmalı" geçerli kelimedir. Yalnızca birim testlerinizde çalışan FtpWebRequest örneklerinde hata ayıklamak için muhtemelen zaman ayırmaya değmez.
CZahrobsky

1
Çok ... Kötü bileşen - dosya veya klasörleri kolayca listeleyemezsiniz, eğer kötü url sağlarsanız - istisnasız çalışır, ancak mesajla html döndürür - Herhangi bir dosya bulamadım ... Ben ... Bu biraz zaman harcamak ve normal bir kütüphane oluşturmak ve olamaz microsoft düşünüyorum) html olduğunu ayrıştırmak
VikciaR

2
MS dokümantasyon docs.microsoft.com/en-us/dotnet/api/... puan yeni projeler için kullanın ve değil diyor github.com/dotnet/platform-compat/blob/master/docs/DE0003.md hangi dönüş bu soruya işaret ediyor
Pete Kirkham

12

edtFTPnet , .NET için C # ile yazılmış ücretsiz, hızlı, açık kaynaklı bir FTP kitaplığıdır.


7
Sitenin tarihli tasarımı, kütüphanenin kalitesi konusunda bana pek güven vermiyor.
Jeroen K

1
LGPL lisansı altındadır. Dolayısıyla, ticari ürün / hizmet geliştiriyorsanız, yapabileceklerinizi, yapamayacaklarınızı, neleri dahil edeceğinizi vb. İçeren bir solucan kutusu açıyorsunuz. Ve SO ile ilgili çok sayıda yanıt ve diğerleri bu konuda farklı görüşler veriyor. ..
Oleksii Vynnychenko

Bu yazılımın geliştiricilerinden biriyim. LGPL ihlalleri konusunda hiç kimseyi takip etmediğimizi ve hatta bu tür vakalar aramayı bile düşünmediğimizi düşündüm. 2003 yılında kütüphane ilk yayınlandığında bu lisansı seçmemizin ana nedeni, LGPL'nin bu kadar çok bilinen lisanslardan biri olmasıydı. Şimdi daha birçok seçenek var ve muhtemelen amacımıza daha iyi uyan başka bir lisans bulmalıyız. Emin olmak istediğimiz tek şey, yazılımımızı hiç kimsenin onunla rekabet eden ticari bir ürün oluşturmak için kullanmamasıdır. Daha az zahmetli bir lisans için önerileri olan var mı?
HansA

1
Bu arada, eğer hukukçularınız bunun için endişelenirse, 99 dolara daha liberal bir lisans satın alabilirsiniz. Oh, ayrıca web sitesi şimdi güncellendi :). Ürün hala çok canlı, çünkü kısmen çok başarılı başka bir ürünün, yani CompleteFTP'nin bir parçası. Bu soruna işaret ettiği için teşekkürler Oleksii. Bunu tartışacağız.
HansA

7

Microsoft MVP adı Alex Pilotti tarafından yazılan Alex FTPS İstemcisini seviyorum . Konsol uygulamalarında, Windows Forms'da, PowerShell'de, ASP.NET'te (herhangi bir .NET dilinde) kullanabileceğiniz bir C # kitaplığıdır. Çok iş parçacıklı bir uygulamanız varsa, kitaplığı eşzamanlı olarak çalışacak şekilde yapılandırmanız gerekir, ancak genel olarak ihtiyacınız olanı size büyük olasılıkla sağlayacak iyi bir istemci.



1

Ben sadece ettik bir makale yayınlanmıştır olduğu hediyeler bir FTP istemcisi sınıf hem de bir FTP kullanıcı kontrolü.

Basittirler ve çok hızlı değildirler, ancak kullanımı çok kolaydır ve tüm kaynak kodları dahildir. Kullanıcıların uygulamanızdan FTP dizinlerinde gezinmesine izin vermek için kullanıcı denetimini bir forma bırakın.


1

Aynı konuyla ilgili birçok araştırmadan sonra, bunu son derece uygun buldum: https://github.com/flagbug/FlagFtp

Örneğin (bunu standart .net "kitaplığı" ile yapmayı deneyin - bu gerçek bir acı olacaktır) -> FTP sunucusundaki tüm dosyaları yinelemeli olarak geri almak:

  public IEnumerable<FtpFileInfo> GetFiles(string server, string user, string password)
    {
        var credentials = new NetworkCredential(user, password);
        var baseUri = new Uri("ftp://" + server + "/");

        var files = new List<FtpFileInfo>();
        AddFilesFromSubdirectory(files, baseUri, credentials);

        return files;
    }

    private void AddFilesFromSubdirectory(List<FtpFileInfo> files, Uri uri, NetworkCredential credentials)
    {
        var client = new FtpClient(credentials);
        var lookedUpFiles = client.GetFiles(uri);
        files.AddRange(lookedUpFiles);

        foreach (var subDirectory in client.GetDirectories(uri))
        {
            AddFilesFromSubdirectory(files, subDirectory.Uri, credentials);
        }
    }

flagftp, Windows ftp istemci çağrılarını kullanır. Bu iyi ya da kötü bir şey değil, ancak kütüphanenin Windows ftp çağrılarının atabileceği aynı hatalara duyarlı olduğu anlamına geliyor
John Mott
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.