MonoDevelop Gtk# 2.0 项目不能使用带有 SSH.NET 库的 SFTP 的非静态下载文件

问题描述 投票:0回答:0

我正在尝试使用 MonoDevelop Gtk# 2.0 项目。

我想将 SFTP 中的

DownloadFile
与 SSH.NET 库一起使用。

如果我单击“下载”按钮,我可以将所选文件从远程服务器下载到我的本地设备。

以下是我的代码。

(我使用 GUI Designer 来创建我的按钮。)

using System;
using Gtk;

public partial class MainWindow : Gtk.Window
{
    public MainWindow() : base(Gtk.WindowType.Toplevel)
    {
        Build();
    }

    protected void OnDeleteEvent(object sender, DeleteEventArgs a)
    {
        Application.Quit();
        a.RetVal = true;
    }

    protected void DownloadModel(object sender, EventArgs e)
    {
        string HOST = "x.x.x.x";
        string USR = "user";
        string PWD = "password";
        int PORT = 22;
        string L_PATH = "/home/local/save/path";
        string D_PATH = "/home/server/download/path";

        var client = new Renci.SshNet.SftpClient(HOST, PORT, USR, PWD);
        client.Connect();

        if(client.IsConnected)
        {
            using (System.IO.Stream filestream = System.IO.File.Create(L_PATH))
            {
                Renci.SshNet.SftpClient.DownloadFile(D_PATH, filestream);               
            }
        }
    }
}

但是编译错误发生在下面。

/data/user/C#/ModelManager/ModelManager/MainWindow.cs(21,21): Error CS0120: An object reference is required for the non-static field, method, or property 'SftpClient.DownloadFile(string, Stream, Action<ulong>)' (CS0120) (ModelManager)

如何修复非静态错误?

或者在MonoDevelop中还有其他下载文件的方法吗?

请帮忙,谢谢。

c# ssh sftp monodevelop gtk#
© www.soinside.com 2019 - 2024. All rights reserved.