问题标签 [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.
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 位
.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
似乎不是真的......
c# - WinSCP .NET 程序集打开存储会话
如何使用 WinSCP 提供的 .NET 程序集打开从 WinSCP 应用程序创建的存储会话?
asp.net - 我可以使用 WinSCP .NET 程序集抑制 MLSD 吗?
我正在使用 WinSCP .NET 程序集。当我调用该Session.PutFiles
方法时,它会发送以下一系列命令:
有没有办法告诉它不要发送MLSD
?(MLSD
请求将远程目录的内容发回。)至少,我不需要这些信息,所以它只是在浪费带宽。我什至不知道我将如何访问它——也许 WinSCP 正在内部使用它?不过,更让我担心的是,我收到了关于我应该发送的一系列 FTP 命令的非常具体的规范,其中包括几个非标准命令,显然另一端的站点有一个定制的 FTP 服务器。所以我不想要一个额外的命令来搞砸事情。
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-dss
或ssh-rsa
)及其大小(1024
等2048
)。因此,答案如下:
如果我正确阅读正则表达式,它不会让您知道在指纹类型之后需要指纹大小。
我希望这对其他人有帮助。感谢大家的洞察力和投入。
winscp - 不要使用 WinSCP .NET 程序集遍历目录
我正在尝试使用WinSCP .NET 程序集将文件夹的内容(但不是包含备份文件、存档文件和错误文件的子文件夹)的内容上传到服务器。这甚至可能吗?如果是这样,我该怎么做?
我现有作品的快速代码剪辑:
有没有什么办法可以说:
?
c# - 无法使用 WinSCP .NET 程序集将文件下载到目录中
我正在为 SFTP 功能实现 WinSCP .NET 程序集。我能够建立会话、列出目录并将文件下载到\bin\x86\Debug
,但由于某种原因,我无法将文件下载到bin\x86\Debug\edi
本地驱动器上的目录中。
下载代码:
通过以下方式调用:
我试过了:
在所有情况下,我都会得到以下内容:%2Fedi%2Ffilename.txt
下载到我的工作目录,而不是指定的路径。
c# - 当目标文件已经存在时,如何使用 WinSCP .NET 程序集移动/重命名文件?
我正在使用 WinSCP .NET Assembly (C#) 开发 SFTP 文件传输项目。
我想在服务器中移动文件。这是代码:
如果当前移动文件存在于目标路径中,则它不会移动。所以我想重命名文件并移动它。
有没有办法做到这一点?
powershell - 无法使用 WinSCP 和 PowerShell 删除名称中带有方括号的目录
我正在尝试编写一个 PowerShell 脚本来自动删除我们的 FTP 服务器上的空目录。我无法直接访问目录所在的服务器 - 我只能通过 FTP 访问它们。出于这个原因,我编写了一个 PowerShell 脚本,它使用 WinSCP .NET 程序集来(尝试)删除空目录。但是,我有一个问题,因为服务器上的许多目录在目录名称中都有方括号。
例如,目录名称可能被称为:[a]153432
这些目录有很多,因此我希望编写一个脚本来删除它们。这是因为它们是由使用数字创建所需目录的程序创建的。为了处理这个程序,我创建了一个空目录
我的程序是这样的:
当我运行它时,它会显示以下消息:
但是,该目录不会被删除。
我还尝试使用分隔符指定目录名称,例如:
但这也失败了(但至少它是这样说的):
但是,如果我将目录名称 [和变量$remoteFileWithUnixPath
] 更改为类似
然后重新运行程序,它删除目录/latest/foo
就好了。
有没有人知道我需要做什么才能让它工作?
Martin Prikryl 指出了这个问题的答案 [谢谢!]
完整的工作代码如下:
c# - 如何使 WinSCP .NET 程序集执行得更快?
有没有人想出使用 WinSCP .NET 的速度性能?
我在http://winscp.net/eng/docs/library#csharp中尝试了 C# WinSCP 示例。我注意到,当它启动时,到达第一个语句(初始化WinSCP.SessionOptions
)需要大约 30 秒。
有谁知道发生了什么?如何加快速度?
我要做的事情是编写一个 C++ 程序(无论是 C++/CLI 还是纯 C++)来自动化一些可能每分钟、每 X 分钟、每小时甚至每天发生的 SFTP 传输。速度是我关心的问题,尤其是每分钟发生一次传输。如果还有其他库可以表现更好,也请告诉我。谢谢。