问题标签 [winscp-net]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4677 浏览

c# - 使用 WinSCP .NET 程序集删除或仅移动具有 SFTP 协议的选定文件

我正在尝试通过以下操作开发一个简单的 SFTP 文件传输项目

  1. 上传
  2. 下载
  3. 在远程服务器中移动文件
  4. 删除文件

在上传时,session.PutFiles()我们有一个称为transferOptions.FileMask过滤文件的属性。

但我没有在里面和里面看到任何类似的session.MoveFile()东西session.RemoveFiles()

我的问题是,如果我只需要移动/删除选定的文件,我该怎么办?

0 投票
1 回答
1621 浏览

c# - 使用 WinSCP .NET 程序集传输后比较文件

我正在使用 WinSCP .NET 程序集将文件从 Windows 传输到 Unix 服务器(主要是 .doc 文件)。有时文件作为空白文档传输。但是来源已经包含了内容。我无法进行目录级同步,因为我正在将文档从不同的客户端机器传输到 Unix 服务器。我正在使用以下代码:

有什么方法可以检查传输的文件是否与源文件同步?

0 投票
2 回答
26844 浏览

c# - WinSCP C#第一次使用

我在我的 PC 上安装了 WinSCP,并希望通过 C# 控制台应用程序连接到另一台服务器。

但是如果我运行 .exe,应用程序甚至在第一个 console.writeline 出现之前就崩溃了。任何想法我做错了什么?

更新:弹出一个警报,上面写着:WINSCP_SFTP 已停止工作.. 然后在 cmd 行中出现一个文本:未处理的异常.. 我尝试尝试..catch 我的整个代码,但它也没有捕捉到错误

发生的错误(图片来自网络,不是我的应用程序的屏幕截图): 在此处输入图像描述

0 投票
2 回答
3478 浏览

winscp - 使用 WinSCP .NET 程序集将 WinSCP 脚本转换为 C# 代码

一年多来,我一直在使用 WinSCP 从外部服务器下载文件,方法是在自动运行的日常任务中从我的 C# 代码中触发外部脚本。

我最近升级到版本 5.5.6(从 V4.3.5.1463),这样我就可以为此使用 .NET 库,并为不同的服务器执行新的 SFTP 任务。新服务器上的 SFTP 任务使用 .NET 库运行得非常好。我对此非常满意,但旧的脚本代码现在失败了。

我尝试添加 .NET 代码只是为了登录并获取文件列表,但也失败了。但是,如果我直接运行 winscp UI,我可以看到服务器上的文件并下载它们。我在代码中使用了与 UI 中相同的细节,包括密钥。该代码显然是连接到服务器并确认了密钥,但随后无法进行身份验证!任何人都可以帮忙吗?

注意:我已将其复制winscp.exe到与 .NET 库相同的文件夹中。我的帐户不需要密码。

我还创建了一个日志文件,如下...

请注意,为了安全起见,在此日志中,我更改了我的用户名、连接 IP 地址和密钥。

这是我的 C# 代码:

0 投票
1 回答
2354 浏览

c# - WinSCP SFTP - .tmp The process cannot access the file

I'm trying to upload file using following code but getting error below.

Some notes: I'm using Windows 7. Using CrushFTP SFTP server, able to connect with using FileZilla and WinSCP client, but through code its being nightmare.

Error/exception:

A first chance exception of type 'System.IO.IOException' occurred in mscorlib.dll

Additional information: The process cannot access the file 'C:\Users\xxxxxxx\AppData\Local\Temp\wscp0D64.036B20B7.tmp' because it is being used by another process.

My code to connect is below

0 投票
1 回答
2751 浏览

vb.net - 从 WinSCP .NET 程序集连接获取 SSH 主机密钥

我正在使用 WinSCP .NET 程序集构建基于 SFTP 的应用程序。

我似乎缺少的一个“关键”事情是,除非用户能够提供,否则应用程序似乎无法使用 SSH 密钥验证它连接到的主机。

我们知道这通常不是这种情况,我想仍然使用 SSH 密钥,而不需要用户使用 3rd 方程序来获取它。

在建立连接之前,您需要设置:

或者

如果您不知道密钥是什么但您别无选择执行后者,我假设您可以通过在建立连接后调用它来获取 SSH 主机密钥的属性:

但这会返回一个空结果。

我查看了 .NET 连接器的文档,似乎没有办法检索您连接到的服务器的 SSH 密钥。

似乎还有一些其他库似乎具有此功能,但我发现的那些是商业许可的。我想即使是具有这种能力的常规 SSH 连接器(无 ftp)也可以工作 - 只是为了获取 SSH 密钥 - 如果我能找到一个。

所以我的问题是
如何使用 WinSCP .NET 程序集从连接的服务器检索未知的 SSH 密钥?
或者
是否有另一个免费可用的库可以让我检索所述 SSH 密钥?

0 投票
1 回答
2774 浏览

c# - WinSCP:在上传/下载文件时查看进度

我使用 WinSCP .NET 库通过PutFiles(..)和.NET 从 SFTP 服务器上传/下载文件GetFiles(..)

有没有办法在上传/下载此服务器的文件时查看进度?例如,要获取已下载的文件大小的百分比。

谢谢,迈克尔

0 投票
3 回答
6385 浏览

powershell - Moving (not copying) remote files after download with WinSCP .NET assembly

I have this script that downloads all .txt and .log files. But I need to move them to another directory on the server after the download.

So far I just keep getting errors like "cannot move "file" to "/file".

0 投票
1 回答
1057 浏览

linux - 使用 VB.NET 将文档加载/保存到 SFTP Linux 服务器

所以我正在使用 Visual Studio 2013(社区)

到目前为止,我已经构建了一个可以使用文本框等创建文件的程序。

它保存到 XML,并希望从 XML 中读取(即使我被拒绝访问)

应用程序与服务器对话的时候到了,所有文件都将被保存和读取。

该服务器是 Linux 服务器版(最新),并且运行良好。我希望我的应用程序连接到它,登录,然后列出并从服务器读取文件。

到目前为止,它做了一点。

这就像一个魅力,它继续前进。

Form1加载后,它会向我显示服务器文件夹中的正确文件..

当我将文件保存到它时

所有这一切都按预期工作。

我想提一下,问题中的文件夹,或服务器上的“共享”,是受密码保护的,并且用户名和密码被插入到登录代码中(临时)

当我双击文件(激活)以阅读它时,我的问题就出现了。

这到底是怎么回事?我假设因为它可以列出该文件夹的内容,并且为了测试,我给了每个人对该文件夹的完全访问权限(用户、组、其他)Linux 上的完全访问权限(0777)

我这样说是为了测试它是否有帮助。

这可能超出您的专业知识,因为它涉及库 WinSCP,实际上是一个 Linux 服务器。

作为唯一拒绝它的“读取 XML”功能,我必须非常接近?

我看到很多人建议其他第三方库,对我来说最好的,如果可能的话,将是纯 VB.NET 的解决方案。

0 投票
1 回答
153 浏览

vb.net - 使用在一个方法中从另一个方法创建的类实例

我已经在这里摸索了几天WinSCP,我所缺少的只是正确地“打开会话”。

这里Session是初始化的。

在下面的表格中我需要Session再次使用,这里我使用了

这在这里有效。此时似乎根据需要打开了会话。但是我的问题出现在我需要在同一个表单中多次打开会话的地方,因为它本身不会保持打开状态,如果可能的话。

我需要在应用程序中做的任何其他事情都无法打开会话,因为我不能有几个“公共子打开”。如果这里有任何 WinSCP 人员,我可以让会话保持活动状态直到应用程序关闭吗?在同一个表单上多次“打开会话”的任何聪明方法?

我觉得很难解释。

示例:
我有一个自动收报机/计时器,它刷新位于 Form 1 (
Objectlist1) 上的列表,它每 5 秒计时一次。

这是使用的代码:

问题是,当它滴答作响时,我得到会话未打开,System.InvalidOperationException基本上是..会话未打开..现在,由于它在表单中进一步打开,我显然需要再次打开它?或者我可以更改其中的某些 Public Sub Open(ByVal sessionOptions As SessionOptions)内容以使其能够在整个表单中保持活力,或者?

这里有什么建议吗?