2016-05-23 9 views
1

Я использую библиотеку Tamir.SharpSSH для выполнения своих SFTP-операций. Я могу загрузить файл с клиента, удалить или перечислить файлы, расположенные в каталоге SFTP-сервера.Как добавить текстовый файл с использованием библиотеки SharpSSH

Но я не могу найти, как добавить текстовый файл. Я не хочу перезаписывать или удалять существующие и загружать новые. У меня есть файл журнала на этом SFTP-сервере. Мне нужно добавить новые строки в этот файл с клиентской стороны.

Я просто искал интернет и смотрел различные функции в коде, но ничего не пытался выполнить, потому что до сих пор я ничего не мог найти.

Заранее спасибо

EDIT

я решил использовать библиотеку Renci.SshNet из посоветуйте @Martin Přikryl в. Я также пробовал вышеуказанные операции с этой библиотекой, и я видел, что она работает хорошо. Кроме того, добавление текста в текстовый файл очень просто с этой библиотекой. Я рассказываю об этом немного:

using System 
using Renci.SshNet; 

namespace SFTPConnectSample 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      AppendText(@"/targetFolder/targetFile.txt"); 
     } 

     private static void AppendText(string targetFilePath) 
     { 
      int portNumber = 22; 

      using (SftpClient sftp = new SftpClient("myHostName", portNumber, "sftpUser", "sftpPassword")) 
      { 
       sftp.ConnectionInfo.Timeout = new TimeSpan(0, 0, 30); 
       sftp.Connect(); 
       sftp.AppendAllText(targetFilePath, "\r\nThis is a new line for target text file."); 
      } 
     } 
    } 
} 
+0

SFTP ISNT используется для добавления в файл , Только для перезаписи, создания, удаления, списка, как вы нашли. Возможно, вы сможете что-то сделать, если сервер sftp поддерживает возобновление, так как вы, возможно, сможете возобновить загрузку с конца файла на сервере .. но, его длинный снимок – BugFinder

+0

@BugFinder Это совсем не так. Используя SFTP, вы можете получить доступ/перезаписать любую часть файла, как если бы вы работали с локальным файлом. –

+0

Хм, хорошо - я только запускал sftp, где он выполнял те же команды, что и обычный ftp .. просто сделал это надежно – BugFinder

ответ

1

Во-первых, не используйте SharpSSH. Это заброшенный проект, который не обновлялся годами.

Вместо этого вы можете использовать SSH.NET library.

Его SftpClient класс несколько методов, которые вы можете использовать:

public StreamWriter AppendText(string path) 
public void AppendAllText(string path, string contents) 
public void AppendAllLines(string path, IEnumerable<string> contents) 

Если вы должны использовать SharpSSH по какой-то причине, использование:

SftpChannel.get(fromFilePath, toFilePath, monitor, ChannelSftp.APPEND); 

 Смежные вопросы

  • Нет связанных вопросов^_^