问题标签 [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 回答
2910 浏览

c# - WinSCP .NET 程序集抛出“该模块应包含程序集清单”

我正在尝试在我的 C# 项目中使用 WinSCP 进行一些 ftp 自动化。我正在使用 Visual Studio 2012,但不确定如何让它工作。

到目前为止我做过的事情:

  • 我将其复制WinSCP.exe到我的项目文件夹中。
  • 我将引用导入WinSCPnet.dll到我的项目中
  • 我跑了C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe Path/To/WINSCPnet.DLL /codebase /tlb

这是我现在的代码:

当我在代码中运行它时,我得到以下异常:

而 Visual Studio 的错误是:BadImageFormatException 未处理。

我不确定如何将 WinSCP 导入到我的 C# 程序中,希望能得到一些指导。

结论 我使用的是 5.2.5 Beta 和 32 位,但我的项目是 64 位

0 投票
1 回答
3938 浏览

.net-assembly - WinSCP .NET 程序集 - 无法使用绝对文件路径

我正在尝试将 WinSCP .NET 程序集 (V5.1.7.0) 用于 FTP 协议,但我在目标服务器上的文件路径方面遇到了困难。

问题是与服务器的任何连接(使用我自己的软件中的 WinSCP 可执行文件或 .NET 程序集)似乎会立即路由到用户的子目录(例如home/zild),但文件需要上传到不同的目录(例如home/test),用户对其有足够的权限(通过 WinSCP 可执行文件手动执行所需的操作来验证)。如果我尝试将远程路径设置为home/test/or (绝对路径),它实际上在两种情况下都/home/test/使用相对路径(例如)。home/zild/home/test我认为 .NET 程序集只使用过绝对路径,所以这是一个惊喜。不幸的是,我找不到将路径设置为所需位置(home/test)的方法。

有人可以解释一下我在这里做错了什么吗?我已经尝试搜索文档和 WinSCP 论坛,但仍然卡住。

编辑:附加信息

代码:

我还没有使用日志记录,但是如果我能正常工作,我也会在这里发布日志。

我已经删除了本地计算机上的大部分文件路径,但是请注意它包含日文字符。

最后,请注意我也遇到了同样的问题session.ListDirectory()

EDIT2:日志文件

这条线2013-11-18 17:26:33.152 257 "/" is the current directory似乎不是真的......

0 投票
1 回答
1965 浏览

c# - WinSCP .NET 程序集打开存储会话

如何使用 WinSCP 提供的 .NET 程序集打开从 WinSCP 应用程序创建的存储会话?

0 投票
1 回答
313 浏览

asp.net - 我可以使用 WinSCP .NET 程序集抑制 MLSD 吗?

我正在使用 WinSCP .NET 程序集。当我调用该Session.PutFiles方法时,它会发送以下一系列命令:

有没有办法告诉它不要发送MLSD?(MLSD请求将远程目录的内容发回。)至少,我不需要这些信息,所以它只是在浪费带宽。我什至不知道我将如何访问它——也许 WinSCP 正在内部使用它?不过,更让我担心的是,我收到了关于我应该发送的一系列 FTP 命令的非常具体的规范,其中包括几个非标准命令,显然另一端的站点有一个定制的 FTP 服务器。所以我不想要一个额外的命令来搞砸事情。

0 投票
2 回答
5387 浏览

c# - WinSCP .NET 程序集拒绝 RSA/DSA 密钥指纹

我正在尝试使用 WinSCP .NET 程序集连接到 WinSCP 服务器。我遇到的问题是它会检查主机密钥指纹。我创建了一个 RSA 密钥。我的代码如下:

SshHostKeyFingerprint属性分配中,我收到以下错误:

SSH 主机密钥指纹“9f:39:52:d5:08:0c:1d:a8:02:c9:7e:44:49:7f:44:fb”不匹配模式 /(ssh-rsa |ssh-dss )?\d+ ([0-9a-f]{2}:){15}[0-9a-f]{2}(;(ssh-rsa |ssh-dss )?\d+ ([0-9a- f]{2}:){15}[0-9a-f]{2})*/

如果我正确阅读,它正在检查 15 2 个字符集,并且我正在分配一个 16 个集合值。我从服务器得到这个值。

更新: 我缺少的是指纹类型(ssh-dssssh-rsa)及其大小(10242048)。因此,答案如下:

如果我正确阅读正则表达式,它不会让您知道在指纹类型之后需要指纹大小。

我希望这对其他人有帮助。感谢大家的洞察力和投入。

0 投票
1 回答
2097 浏览

winscp - 不要使用 WinSCP .NET 程序集遍历目录

我正在尝试使用WinSCP .NET 程序集将文件夹的内容(但不是包含备份文件、存档文件和错误文件的子文件夹)的内容上传到服务器。这甚至可能吗?如果是这样,我该怎么做?

我现有作品的快速代码剪辑:

有没有什么办法可以说:

?

0 投票
1 回答
5061 浏览

c# - 无法使用 WinSCP .NET 程序集将文件下载到目录中

我正在为 SFTP 功能实现 WinSCP .NET 程序集。我能够建立会话、列出目录并将文件下载到\bin\x86\Debug,但由于某种原因,我无法将文件下载到bin\x86\Debug\edi本地驱动器上的目录中。

下载代码:

通过以下方式调用:

我试过了:

在所有情况下,我都会得到以下内容:%2Fedi%2Ffilename.txt下载到我的工作目录,而不是指定的路径。

0 投票
1 回答
7875 浏览

c# - 当目标文件已经存在时,如何使用 WinSCP .NET 程序集移动/重命名文件?

我正在使用 WinSCP .NET Assembly (C#) 开发 SFTP 文件传输项目。

我想在服务器中移动文件。这是代码:

如果当前移动文件存在于目标路径中,则它不会移动。所以我想重命名文件并移动它。

有没有办法做到这一点?

0 投票
2 回答
1076 浏览

powershell - 无法使用 WinSCP 和 PowerShell 删除名称中带有方括号的目录

我正在尝试编写一个 PowerShell 脚本来自动删除我们的 FTP 服务器上的空目录。我无法直接访问目录所在的服务器 - 我只能通过 FTP 访问它们。出于这个原因,我编写了一个 PowerShell 脚本,它使用 WinSCP .NET 程序集来(尝试)删除空目录。但是,我有一个问题,因为服务器上的许多目录在目录名称中都有方括号。

例如,目录名称可能被称为:[a]153432

这些目录有很多,因此我希望编写一个脚本来删除它们。这是因为它们是由使用数字创建所需目录的程序创建的。为了处理这个程序,我创建了一个空目录

我的程序是这样的:

当我运行它时,它会显示以下消息:

但是,该目录不会被删除。

我还尝试使用分隔符指定目录名称,例如:

但这也失败了(但至少它是这样说的):

但是,如果我将目录名称 [和变量$remoteFileWithUnixPath] 更改为类似

然后重新运行程序,它删除目录/latest/foo就好了。

有没有人知道我需要做什么才能让它工作?


Martin Prikryl 指出了这个问题的答案 [谢谢!]

完整的工作代码如下:

0 投票
1 回答
1384 浏览

c# - 如何使 WinSCP .NET 程序集执行得更快?

有没有人想出使用 WinSCP .NET 的速度性能?

我在http://winscp.net/eng/docs/library#csharp中尝试了 C# WinSCP 示例。我注意到,当它启动时,到达第一个语句(初始化WinSCP.SessionOptions)需要大约 30 秒。

有谁知道发生了什么?如何加快速度?

我要做的事情是编写一个 C++ 程序(无论是 C++/CLI 还是纯 C++)来自动化一些可能每分钟、每 X 分钟、每小时甚至每天发生的 SFTP 传输。速度是我关心的问题,尤其是每分钟发生一次传输。如果还有其他库可以表现更好,也请告诉我。谢谢。