static FtpListItem ParseVaxList(string buf, FtpCapability capabilities)
{
string regex =
@"(?<name>.+)\.(?<extension>.+);(?<version>\d+)\s+" +
@"(?<size>\d+)\s+" +
@"(?<modify>\d+-\w+-\d+\s+\d+:\d+)";
Match m;
if ((m = Regex.Match(buf, regex)).Success) {
FtpListItem item = new FtpListItem();
item.m_name = string.Format("{0}.{1};{2}",
m.Groups["name"].Value,
m.Groups["extension"].Value,
m.Groups["version"].Value);
if (m.Groups["extension"].Value.ToUpper() == "DIR")
item.m_type = FtpFileSystemObjectType.Directory;
else
item.m_type = FtpFileSystemObjectType.File;
if (!long.TryParse(m.Groups["size"].Value, out item.m_size))
item.m_size = -1;
if (!DateTime.TryParse(m.Groups["modify"].Value, CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out item.m_modified))
item.m_modified = DateTime.MinValue;
return item;
}
return null;
}