📜  c# winscp 上传文件 - C# (1)

📅  最后修改于: 2023-12-03 14:59:41.167000             🧑  作者: Mango

C# WinSCP 上传文件

WinSCP 是一个免费开源的 SFTP, SCP 和 FTP 客户端,支持 Windows 系统。C# 开发者可以使用 WinSCP .NET 库来实现文件上传功能。

安装 WinSCP

可以在 WinSCP 官网下载 WinSCP 客户端和 WinSCP .NET 程序集。安装时选择安装 .NET 程序集。

下载地址:https://winscp.net/eng/download.php

引用 WinSCP 程序集

在 C# 项目中,需要将 WinSCP .NET 程序集添加到项目引用中。

上传文件

以下是一个简单的 C# 示例代码,演示如何使用 WinSCP .NET 库上传文件。

using System;
using WinSCP;

class Program
{
    static void Main(string[] args)
    {
        SessionOptions sessionOptions = new SessionOptions
        {
            Protocol = Protocol.Sftp,
            HostName = "example.com",
            UserName = "username",
            Password = "password",
            SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx",
        };

        using (Session session = new Session())
        {
            session.Open(sessionOptions);

            TransferOptions transferOptions = new TransferOptions();
            transferOptions.TransferMode = TransferMode.Binary;

            TransferOperationResult transferResult;
            transferResult = session.PutFiles(@"C:\local\path\file.txt", "/remote/path/", false, transferOptions);

            transferResult.Check();

            Console.WriteLine("Upload Successful!");
        }
    }
}

在代码中,需要设置 SessionOptions 对象,包括 SFTP 协议、主机名、用户名、密码和 SSH 主机密钥指纹。使用 Session 对象打开会话后,创建一个 TransferOptions 对象,将 TransferMode 设置为 Binary,表示二进制模式上传文件。使用 PutFiles 方法上传本地文件到远程路径。Upload Successful! 将在上传成功后输出。

总结

WinSCP .NET 库可以帮助 C# 开发者实现文件上传功能。在使用 WinSCP .NET 库时,需要设置 SessionOptions 和 TransferOptions 对象。使用 PutFiles 方法上传文件,并检查上传结果。