小编Mid*_*ido的帖子

从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万
查看次数

标签 统计

.net ×1

c# ×1

ftp ×1

ftpwebrequest ×1

ftpwebresponse ×1