Pregunta

Estoy usando el comando seguir para obtener una lista de FileSystemInfo de

IList<FileSystemInfo> requestFiles = 
                new List<FileSystemInfo>(
                    _RequestDirectory.GetFileSystemInfos(GetSearchPatern())); 

Obtener rendimientos patrón de búsqueda "* .exr". La lista sigue incluyendo archivos que terminan con ".exr2" , pero no incluye aquellos que terminan con" .exr.bak". Es esta funcionalidad esperada? Debería comprobar manualmente los archivos devueltos? Me he dado cuenta de que este es el mismo resultado que llego del comando dir en la línea de comandos.

¿Fue útil?

Solución

A partir de MSDN:

Cuando se utiliza el carácter comodín asterisco en un searchPattern, tales como " .txt", el comportamiento coincidente cuando la extensión es exactamente tres caracteres de longitud es diferente que cuando la extensión es más o menos de tres caracteres de longitud. Un searchPattern con una extensión de archivo de exactamente tres caracteres devuelve los archivos que tienen una extensión de tres o más caracteres, donde los tres primeros caracteres coinciden con la extensión de archivo especificado en el searchPattern. Un searchPattern con una extensión de archivo de uno, dos, o más de tres caracteres sólo devuelve los archivos que tienen extensiones de longitud exactamente eso que coinciden con la extensión de archivo especificado en el searchPattern. Cuando se utiliza el carácter comodín signo de interrogación, este método devuelve sólo los archivos que coinciden con la extensión de archivo especificado. Por ejemplo, dadas dos archivos, "file1.txt" y "file1.txtother", en un directorio, un patrón de búsqueda de "presentar? .Txt" devuelve sólo el primer archivo, mientras que un patrón de búsqueda de "archivo .txt" devuelve ambos archivos.

http://msdn.microsoft.com/en- es / library / wz42302f.aspx

La razón de que .exr.bak no coincide con "* .exr" se debe a una extensión se determina que es el conjunto de caracteres después de la última ''. (O archivo de extensión carácter separador), por lo que no coincide con .exr .bak.

Otros consejos

Esto es causado por que se generan automáticamente para los archivos. En nombres cortos de la extensión es siempre la última después ''. y tiene como máximo 3 caracteres. Los medios que nombre corto de "example.ext2" terminará con ".ext" y nombre corto de 'example.ext.bak' terminarán con ".bak".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top