Моя цель - создать csv и sftp без сохранения файла на локальной машине с помощью vb.net. Вот мой код создать CSV:Создайте файл csv и sftp его, не сохраняя его на локальном
Public Sub writeCSV()
Dim headers = (From header As DataGridViewColumn In
DataGridView1.Columns.Cast(Of DataGridViewColumn)() _
Select header.HeaderText).ToArray
Dim rows = From row As DataGridViewRow In DataGridView1.Rows.Cast(Of
DataGridViewRow)() _
Where Not row.IsNewRow _
Select Array.ConvertAll(row.Cells.Cast(Of
DataGridViewCell).ToArray, Function(c) If(c.Value IsNot Nothing,
c.Value.ToString, ""))
Using sw As New IO.StreamWriter("foo.csv")
sw.WriteLine(String.Join(",", headers))
For Each r In rows
sw.WriteLine(String.Join(",", r))
Next
End Using
'Process.Start("foo.csv")
'SFTP("foo.csv")
End Sub
Вместо запуска и/или сохранение процесса .. Я хотел бы написать подпрограмму, которая я могу просто SFTP это foo.csv к серверу оператора поставщика. Это возможно? Кроме того, SFTP необходимо будет использовать ключ, а не пароль.
Спасибо заранее,
Вы уже разработали, как SFTP нормальный файл и заставить работать? Поскольку вы указываете на необходимость ключа, я подозреваю, что нет. Существует множество клиентских библиотек, которые будут делать это - вам нужно выбрать один и написать для него соответствующий код. Тогда волнуйтесь о том, можете ли вы это сделать, не сохраняя сначала файл. Если нет, вы можете просто удалить файл со своего компьютера после завершения передачи. Похоже, что с использованием необработанного FTP вы можете это сделать: http://stackoverflow.com/questions/39224938/upload-a-file-to-an-ftp-server-from-a-string-or-stream, поэтому, возможно, SFTP будет работа тоже – ADyson
Спасибо ADyson. Да, я разработал SFTP; и, как вы указали, удаление файла после sftp является хорошей альтернативой; однако в этом случае это не является предпочтительным вариантом. Я бы хотел, чтобы файл был отправлен после создания, которого я никогда не делал. – Matt