2009-07-22 7 views
0

Existe-t-il des composants open source C# qui me permettent de supprimer des fichiers via SFTP?Suppression de fichiers via SFTP

+0

Il suffit de vérifier: par SFTP, voulez-vous dire le protocole de transfert de fichiers SSH? Parce que celui-ci n'a rien à voir avec FTP, votre question est taguée avec FTP. – Thorarin

+0

je ne suis pas d'accord, SFTP et FTP sont similaires à certains égards. – djangofan

+0

@djangofan Les concepts sont similaires, mais la mise en œuvre est complètement différente. Le protocole SFTP n'a rien à voir avec FTP (sauf le nom). Voir http://www.rebex.net/secure-ftp.net/ pour les différences entre FTP, FTPS, FTP/SSL et SFTP. –

Répondre

0

Vous pouvez utiliser OpenSSH et émettre des commandes batch sftp. Tout ce que vous avez à faire du côté C# est de lancer le processus sftp avec la bonne ligne de commande.

1

La version Sharp SSH de Tamir Gal est une implémentation Open Source assez populaire de SFTP pour .NET. Essaie.

Si vous préférez un composant commercial entièrement pris en charge, essayez notre Rebex SFTP. code suivant ilustrates le concept:

using Rebex.Net; 

// create client and connect 
Sftp client = new Sftp(); 
client.Connect(hostname); 
client.Login(username, password); 

// delete the file 
client.DeleteFile("/path/to/the/file"); 

// disconnect 
client.Disconnect(); 
+0

Martin, s'il vous plaît divulguez votre affiliation dans chaque poste où vous mentionnez vos propres produits. Je sais que vous n'essayez rien d'obscur, c'est juste la politique que nous demandons à tout le monde d'adhérer. Veuillez consulter la [FAQ] (http://stackoverflow.com/faq) pour la déclaration de politique officielle. Merci. –

+1

Bien sûr, pas de problème. J'ai ajouté un mot magique "notre" à ce message (et à d'autres messages aussi). –

0

J'utilise http://sshnet.codeplex.com/. Cela a bien fonctionné pour moi et est activement développé/soutenu.

Le code pour supprimer le fichier est aussi simple que

public static void DownloadFile(SftpClient client, SftpFile remoteFileName) 
{ 
    var localFileName = System.IO.Path.GetFileName(remoteFileName.Name); 
    using (var file = File.OpenWrite(localFileName)) 
    { 
     client.DownloadFile(remoteFileName.FullName , file); 
     remoteFileName.Delete(); 
    } 
} 
0

exécuter la commande Linux rm avec l'objet SshExec. Cette commande supprime le fichier. Exemple:

rm /dir1/dir2/file.txt

Autre exemple Tamir Execute Command

public static bool DeleteFile(string remotePath) 
{ 
    try 
    { 
     SshExec comando = new SshExec(Server, User); 
     comando.Password = Password; 

     comando.Connect(); 

     string paso = comando.RunCommand("rm " + remotePath); 

     comando.Close(); 

     return true; 
    } 
    catch (Exception ex) 
    { 

     mErrorSFTP = ex.Message; 
     return false; 
    } 
} 
+0

Bien que le code soit apprécié, il doit toujours être accompagné d'une explication. Cela ne doit pas être long, mais c'est prévu. – peterh

Questions connexes