【发布时间】:2019-07-04 03:04:33
【问题描述】:
是否有类似于 C# 连接字符串的 FTP 连接?我可以写成一个完整的字符串并轻松管理的东西,例如:
ftp://username:password@domain:port
我会详细解释我正在尝试做的事情。我正在编写一个小型控制台应用程序,让我们保持这个示例简单,从 FTP 下载所有文件。例如,我想使用类似于我们用于 nuget 包的命令行查询。一个很好的例子就是这个:
Update-database -connectionString "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Local;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True" -ConnectionProviderName "System.Data.SqlClient" -verbose
所以对于我的 FTP,它仍然类似于
Download-Ftp -ftp "ftp://usr202:P@ssw0rd@example.com:21"
还有更多的细节,比如
Download-Ftp -ftp "ftp://usr202:P@ssw0rd@example.com:21;Sftp=false;AnyOtherFtpParameter=value"
我当然可以自己做。我现在的问题是。是否已经有一些东西、一些标准、更好的方法来管理这个或什么都没有?
【问题讨论】:
-
您只需要以某种方式在您的
P@ssw0rd中转义@。您可以为此使用UriBuilder:new UriBuilder("ftp", "example.com", 21) { UserName = "usr202", Password = Uri.EscapeDataString("P@ssw0rd") }.Uri -
对于SFTP,使用
sftp://,而不是ftp://URL的Sftp参数。