问题标签 [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 程序集列出具有特定扩展名的文件
我正在使用 WinSCP .NET 程序集通过 C# .NET 通过 SFTP 进行下载和上传。我有下载功能,但我正在寻找一种方法来列出远程服务器中的文件(或至少列出具有特定扩展名的文件),因此用户只需从具有特定扩展名(如.txt
)的文件中进行选择即可获取他们想要的文件。
有没有办法用 WinSCP .NET 程序集做到这一点?
c# - WinSCP .NET 程序集:目录同步中的 FileMask 不起作用
这是我想首先用外行术语做的事情:我想获取文件(也许只是一些文件)。如果有子目录,我也想在这些子目录中获取文件。我正在使用 Visual C++/CLI 进行编程,所以我使用的是 .net 程序集。
在 WinSCP 中,即使用Session.SynchronizeDirectories()
. 最后一个参数是TransferOptions
(一个类),它通常设置为空。基本上这意味着每个文件都将被传输。如果我创建一个对象并设置属性string FileMask
,我应该只能传输某些文件。
所以我将WinSCP C#示例程序更改为:
当我运行程序时,当前目录和子目录中的所有内容都会被转移!
认为我在指定这些选项时可能是错误的。我使用 WinSCP 程序。(可参考 WinSCP 网站传输设置对话框页面中的图片。)
除了我为文件掩码输入以下内容外,所有选项都很清楚:
*.txt
我单击确定按钮开始传输。我有预览选项。而且我只看到选择的 txt 文件,甚至是子目录中的一个。
所以 WinSCP 程序有效,但 API 无效?
[编辑] 我正在使用 5.5.2 版的 WinSCP 程序集。
c# - WinSCP .NET 程序集:在 C++/CLI 中将自定义事件处理程序设置为 Session.FileTransferred
对不起,我有一个具体的问题。是的,这与为事件设置自定义事件处理程序有关。是的,这类问题可能已经被问过很多次了,但这里我只限于 WinSCP 的情况。
参考Session.SynchronizeDirectories
方法中的示例:
http ://winscp.net/eng/docs/library_session_synchronizedirectories
我正在将 C# 示例转换为 C++/CLI,但遇到问题。
在 C# 中,设置为:
在 C++/CLI 中,我执行以下操作:
但我得到这个错误:
函数 FileTransferred() 与委托类型“void (System::Object ^, System::EventArgs ^)”不匹配。
我尝试更改为FileTransferred(System::Object ^sender, EventArgs ^e)
,但随后整个身体FileTransferred()
变得无效。
file-io - WinSCP Session::RemoveFiles - 删除子目录中的指定文件
[问题] 是否Session::RemoveFiles()
删除源目录子目录中的文件?如果没有,如何实现这个能力?
(请不要问我为什么将远程目录设置为/C/testTransfer/
. 代码仅用于测试目的。)
我有一个使用 WinSCP .Net 程序集的 SFTP 程序。程序语言是 C++/CLI。它打开一个工作文件。该文件包含多行 FTP 指令。
我必须处理的一种指令是*.txt
从源目录传输。源目录可能包含子目录,子目录也可能包含.txt
。传输成功后,删除源文件。
我Session::GetFiles()
用于转移。它正确地将源中的所有.txt
文件 ( /C/testTransfer/*.txt
),甚至是子目录 ( /C/testTransfer/sub/*.txt
) 中的文件传输到目标。
现在要删除,我使用session->RemoveFiles("/C/testTransfer/*.txt")
. 我只看到*.txt
在源(/C/testTransfer/*.txt
)中,而不是在子目录(/C/testTransfer/sub/*.txt
)中,都被删除了。
c++-cli - WinSCP:使用 GetFiles() 遇到连接目录
[问题] WinSCP可以处理Junction目录吗?
我正在使用 C++/CLI 使用 WinSCP .NET 程序集(版本 5.5.3)编写 SFTP 程序。我的程序读入一个计划文件。最初获取文件的源路径必须是绝对路径。现在我必须支持相对路径,我遇到了一个问题。
以下是尝试获取主目录中的所有文本文件。当然,我也想获取主目录内所有子目录中的所有文本文件。所以我使用:
假设我们使用这个账号terry登录远程计算机,远程主目录是/C/Users/terry/Documents
. 从session->DebugLog
文件中,我发现 WinSCP 试图检查主目录中的所有文件和目录。
名单是:
WinSCP 遍历列表中的每个项目。处理后firstDirectory
,它会尝试处理My Music
。但是,由于权限被拒绝,它会返回一个错误,因为它无法处理。
然后我去服务器,然后做一个dir
. 我发现这 3 个“我的”目录是 [Junction]:
我检查了这些并找出了这些: 主题“同步已损坏”;;追踪器错误 1132 ;; 主题:“WinSCP 在同步时不检查硬链接目标日期”
他们有关系吗?
c# - 此代码是否存在瓶颈或资源密集型?
该代码将以 15 分钟的间隔执行 4 个线程。我上次运行它时,前 15 分钟复制得很快(6 分钟内复制了 20 个文件),但第二个 15 分钟要慢得多。这是零星的,我想确定,如果有任何瓶颈,它与远程服务器的带宽限制有关。
编辑:我正在监视最后一次运行以及 15:00 和 :45 分别在 8 分钟内复制。:15 还没有结束,:30 也没有结束,而且都在 :45 之前至少 10 分钟开始。
这是我的代码:
asp.net-mvc - WinSCP .NET 程序集在 Azure 上不起作用
我在 Azure 上执行 WinSCP .NET 程序集(NuGet 插件)时遇到问题。一切正常localhost
,但是当我在 Azure 上部署我的 Web 应用程序时,出现以下错误:
WinSCP 进程以退出代码 -1073741819 终止并输出“”,没有响应(未创建响应日志文件 C:\DWASFiles\Sites\mysite\Temp\wscp573C.00D7BA5D.tmp)。这可能表明缺少对日志文件夹的写入权限或启动 WinSCP 本身的问题。
c# - 使用 WinSCP 禁止在 SFTP 或 SCP 中使用主机密钥
我正在使用 WinSCP .NET 程序集(版本 5.5.0.3839)下载文件的应用程序
我下载文件的代码如下
FTP 工作正常,但使用 SFTP 需要主机密钥。
当我直接使用 WinSCP 应用程序时,它会警告主机密钥,用户可以通过单击“复制密钥”按钮来复制主机密钥。
主机密钥将被复制到剪贴板,我们可以使用此密钥从 SFTP 或 SCP 下载文件。
还有一个选项,用户可以禁止使用主机密钥。
我想以编程方式禁止使用主机密钥。
让我知道是否需要任何其他信息。
public-key - “未验证主机密钥!” 使用 WinSCP .NET 程序集连接时
我正在尝试使用以下代码建立与 SFTP 服务器的连接,我将收到此错误消息“主机密钥未验证!” .
但是,如果我使用以下代码建立连接,则可以连接。
我很想知道我在第一种方法中做错了什么?