サーバーのファイルのリストを取得し、正しいリストを渡すため、sftpサーバーに接続できます。しかし、mysftp サーバーのフォルダーにファイルをアップロードできません。これが私のコードです:
private static void FileUploadUsingSftp(string SFTPAddress, string SFTPUserName, string SFTPPassword,
string SFTPFilePath, string FileName)
{
Sftp sftp = null;
try
{
sftp = new Sftp( SFTPAddress,SFTPUserName , SFTPPassword);
// Connect Sftp
sftp.Connect();
MessageBox.Show("Connected!");
//Check if im surely connected
//list down files in my sftp server folder u01
ArrayList list;
list = sftp.GetFileList("//u01");
foreach (string item in list)
{
MessageBox.Show(item.ToString());
}
MessageBox.Show(list.Count.ToString());
// upload file
sftp.Put(FileName, "//u01"); -----> **I get exception here**
MessageBox.Show("UPLOADED!");
// Close the Sftp connection
sftp.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
if (sftp != null)
{
sftp.Close();
}
}
}
私はこの例外を受け取ります:
"Exception of type 'Tamir.SharpSsh.jsch.SftpException' was thrown."
at Tamir.SharpSsh.jsch.ChannelSftp.put(String src, String dst, SftpProgressMonitormonitor, Int32 mode)
at Tamir.SharpSsh.Sftp.Put(String fromFilePath, String toFilePath)
sftp.Put(FileName,SFTPAddress + "//u01"); を使用してみました。
私は試してみました sftp.Put(FileName,SFTPAddress); そして、それは機能しますが、ファイルが存在する場合にsftpサーバーを見ると、そうではありません。
試してみました sftp.Put(FileName,"//u01"); 同じエラーがスローされます。
ファイルを ftp サーバーのフォルダーにアップロードする必要があり、そのフォルダーの 1 つがu01です。
誰でも私を助けることができますか?何が悪いのかわからない。つながっているとおもいます。そして、filezilla を使用してアップロードしようとすると、うまくいくので、sftp サーバーへの書き込みに制限はありません。