相关疑难解决方法(0)

C#类解析WebRequestMethods.Ftp.ListDirectoryDe​​tails FTP响应

我正在创建一个服务来监视FTP位置以获取新更新,并且需要能够使用WebRequestMethods.Ftp.ListDirectoryDe​​tails方法解析从FtpWebRequest响应返回的响应.如果所有响应都遵循相同的格式,但不同的FTP服务器软件提供不同的响应格式,这将是相当容易的.

例如,可能会返回:

08-10-11  12:02PM       <DIR>          Version2
06-25-09  02:41PM            144700153 image34.gif
06-25-09  02:51PM            144700153 updates.txt
11-04-10  02:45PM            144700214 digger.tif
Run Code Online (Sandbox Code Playgroud)

另一台服务器可能会返回:

d--x--x--x    2 ftp      ftp          4096 Mar 07  2002 bin
-rw-r--r--    1 ftp      ftp        659450 Jun 15 05:07 TEST.TXT
-rw-r--r--    1 ftp      ftp      101786380 Sep 08  2008 TEST03-05.TXT
drwxrwxr-x    2 ftp      ftp          4096 May 06 12:24 dropoff
Run Code Online (Sandbox Code Playgroud)

并且还观察到其他差异,因此可能存在一些我尚未遇到的细微差别.

有没有人知道完全托管(不需要访问Windows上的外部DLL)C#类无缝地处理这些情况?

我只需要列出具有以下详细信息的目录内容:文件/目录名称,上次更新或创建的时间戳,文件/目录名称.

提前感谢任何建议,加文

.net c# ftp ftpwebrequest

20
推荐指数
3
解决办法
2万
查看次数

检索文件的创建日期(FTP)

我正在使用System.Net.FtpWebRequest该类,我的代码如下:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://example.com/folder");
request.Method = WebRequestMethods.Ftp.ListDirectory;

request.Credentials = new NetworkCredential("username", "password");

FtpWebResponse response = (FtpWebResponse)request.GetResponse();

Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);

string names = reader.ReadToEnd();

reader.Close();
response.Close();
Run Code Online (Sandbox Code Playgroud)

这是基于MSDN上提供的示例,但我找不到更详细的内容.

我将所有文件名存储在文件夹中names但是我现在如何遍历每个文件名并检索它们的日期?我想检索日期,以便找到最新的文件.谢谢.

c# ftp ftpwebrequest

15
推荐指数
3
解决办法
3万
查看次数

解析FtpWebRequest ListDirectoryDe​​tails行

我需要一些帮助来解析ListDirectoryDetailsC#中的响应.

我只需要以下字段.

  • 文件名/目录名
  • 创建日期
  • 和文件大小.

这是我跑步时的一些线条ListDirectoryDetails:

d--x--x--x    2 ftp      ftp          4096 Mar 07  2002 bin
-rw-r--r--    1 ftp      ftp        659450 Jun 15 05:07 TEST.TXT
-rw-r--r--    1 ftp      ftp      101786380 Sep 08  2008 TEST03-05.TXT
drwxrwxr-x    2 ftp      ftp          4096 May 06 12:24 dropoff
Run Code Online (Sandbox Code Playgroud)

提前致谢.

c# ftp parsing ftpwebrequest

10
推荐指数
2
解决办法
2万
查看次数

从WebRequestMethods.Ftp.ListDirectoryDe​​tails中提取文件名

我有一个应用程序执行以下操作:目录列表,下载文件,全部下载.

我从WebRequestMethods.Ftp.ListDirectoryDe​​tails获取文件名时遇到问题.对于每种情况,似乎都不可能这样做.

WebRequestMethods.Ftp.ListDirectoryDe​​tails以下列方式返回lineItem:

"-rw-r - r-- 1 ftp ftp 39979 Aug 01 16:02 db to pc 2014-08-05 07-30-00.csv"

我使用第一个字符来确定它是文件还是目录.然后我在空间上拆分文件,并在拆分中的固定索引量之后获取文件名.我的实现中的问题是,如果一个文件有多个空格,那么它将被错误地引用,空格较少,并且在尝试下载时不会找到该文件.

我无法使用split.last(),因为文件名可以包含空格,也不能包含WebRequestMethods.Ftp.ListDirectory,因为它不允许我们区分目录和没有扩展名的文件.也不是正则表达式,因为文件名可以包含日期.寻找完全涵盖所有案例的解决方案的任何帮助都会很棒.

bool isDirectory = line.Substring(0,1).Equals("d", System.StringComparison.OrdinalIgnoreCase);

string[] itemNames = line.Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries).Select((value, index) => new { value, index }).Where(i => i.index > 7).Select(i => i.value).ToArray();
string val = string.Join(" ", itemNames);
Run Code Online (Sandbox Code Playgroud)

.net c# ftp ftpwebrequest ftpwebresponse

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×4

ftp ×4

ftpwebrequest ×4

.net ×2

ftpwebresponse ×1

parsing ×1