El análisis de los detalles del Archivo para Windows Servidor FTP
-
19-09-2019 - |
Pregunta
Estoy tratando de conectarse a un servidor FTP a través del código de c# y me estoy haciendo la lista de Archivos y directorios.Y que me estoy ahorrando en un ArrayList(con todos los atributos).No puedo encontrar el Servidor FTP tipo a través de la SYS comando ftp.Tengo una expresión regular para UNIX basados en archivos para analizar el archivo\directorios de atributos.Pero yo no tengo ninguna expresión para Windows servidor FTP los archivos de análisis.Necesito ayuda para hacer eso..
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
Es necesario analizar estos.Fecha, Hora, Dir\Archivo, Nombre del archivo
Por favor, ayudar.Gracias.
Solución
Yo no sé mucho acerca de C#, pero si sólo necesita un RegEx probar esto:
^(\d\d-\d\d-\d\d)\s+(\d\d:\d\d(AM|PM))\s+([\w<>]*)\s+(\d*)\s+([\w\._\-]+)\s*$
$1 = fecha, $2=tiempo, $3=am o pm, $4=tipo (puede ser null), $5=tamaño(null si dir), $6=nombre
o iff $4 es sólo o vacío
^(\d\d-\d\d-\d\d)\s+(\d\d:\d\d(AM|PM))\s+(<DIR>)?\s+(\d*)\s+([\w\._\-]+)\s*$
Supongo que "<"y ">" hay caracteres especiales en c#
Otros consejos
^(\d{2}-\d{2}-\d{2}\s*\d{2}:\d{2}(A|P)M)\s*(<DIR>){0,1}\s*(\d*)\s*(\w)\s*$
Captura de los grupos:0:datetime 1:Se dir 2:Tamaño de archivo (o null en el directorio) 3:Nombre
Yo no tengo un compilador a mano así que no puedo probar eso, pero debe ser lo suficientemente cerca como para empezar.
Parece que las líneas tienen una estructura fija.Así que usted podría simplemente hacer esto:
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);