解析文件的详细信息的Windows FTP服务器
-
19-09-2019 - |
题
我想通过C#代码连接到FTP服务器和我收到的文件和目录的列表。而且,我在一个ArrayList中现在的储蓄(所有属性)。我能找到通过SYS ftp命令进行FTP服务器类型。我有一个正则表达式的基于UNIX的文件解析文件\目录的属性。但我的Windows FTP服务器的文件解析没有什么表情。我需要在作出该帮助..
04-30-09 10:40AM <DIR> Acrobat
12-08-09 10:36PM 9058 AuthCheck.zip
12-06-09 12:49PM 174 desktop.ini
11-09-09 03:33PM <DIR> FailedPDF
我需要解析这些。日期,时间,迪尔\文件,该文件的名称
请帮忙。感谢。
解决方案
我不知道很多关于C#,但如果你只需要一个正则表达式试试这个:
^(\d\d-\d\d-\d\d)\s+(\d\d:\d\d(AM|PM))\s+([\w<>]*)\s+(\d*)\s+([\w\._\-]+)\s*$
$ 1 =日期,$ 2 =时间,$ 3 =上午或下午,$ 4 =类型(可以为空),$ 5 =尺寸(空如果DIR),$ 6 =名称
或当且仅当$ 4是仅或空
^(\d\d-\d\d-\d\d)\s+(\d\d:\d\d(AM|PM))\s+(<DIR>)?\s+(\d*)\s+([\w\._\-]+)\s*$
我假设 “<” 和 “>” 是在C#没有特殊字符
其他提示
^(\d{2}-\d{2}-\d{2}\s*\d{2}:\d{2}(A|P)M)\s*(<DIR>){0,1}\s*(\d*)\s*(\w)\s*$
捕获基团: 0:日期时间 1:DIR 2:文件大小(或空为目录) 3:名称
我没有编译器方便,所以我不能测试,但它应该是足够接近上手。
它看起来像线具有固定的结构。所以,你可以简单地这样做:
Date fileDate;
bool isDir;
int fileSize;
string fileName;
fileDate=line.Substring(0,18).ParseExact("MM-dd-yy hh-sstt");
isDir=line.Substring(24,5)=="DIR";
if (!isDir)
{
fileSize=int.Parse(line.Substring(29,10).Trim());
}
fileName=line.Substring(39);
不隶属于 StackOverflow