2011-04-11 19 views
8

Estoy usando .NET 2.0 y Linq está fuera de toda duda. Me gustaría comprobar si el archivo existe dentro de un directorio sin conocimiento de la extensión de archivo.Compruebe si el archivo existe en el directorio ignorando la extensión

Solo necesito esta lógica. existe

1.Verificar archivo en el directorio utilizando Cadena Nombre del archivo proporciona el uso de patrón de búsqueda dejando de lado la extensión del archivo

2.Get los archivos si existe y databind para proporcionar Download links .Si archivo no existe, entonces se inicia cargando el archivo.

Actualización: Directory.GetFiles() y DirectoryInfo.GetFiles() efectivamente resuelve la parte donde en verifico por la existencia del archivo. En cuanto a la actuación en relación con los objetos FileInfo, estos eran única solución a mis necesidades de enlace de datos para proporcionar enlaces de descarga

+1

Y qué parte de ella no es obvio para usted? Ya proporcionó la solución en su intento de escribir una pregunta. –

+2

¿Por qué necesita un objeto FileInfo? –

+1

puede crear un objeto FileInfo para cada cadena en la matriz resultante ... ¿cuál es su problema? –

Respuesta

20
DirectoryInfo root = new DirectoryInfo("your_directory_path"); 
FileInfo[] listfiles = root.GetFiles("dummy.*"); 
if (listfiles.Length > 0) 
{ 
    //File exists 
    foreach (FileInfo file in listfiles) 
     { 
      //Get Filename and link download here 
     } 
} 
else 
{ 
    //File does not exist 
    //Upload 
} 

Hope esto funciona

+1

Yup funciona como yo quería. Marcado como respuesta, gracias – Deeptechtons

+1

Y al parecer instanciar FileInfos a través de GetFiles no es demasiado costoso. –

+1

@Martinho comentó en relación con los comentarios a la pregunta – Deeptechtons

4

Para ver si existe un archivo con ese nombre, puede que no sólo tiene que utilizar ..

Sin embargo, Directory.GetFiles ya incluye la ruta completa

string [] files = Directory.GetFiles(Path,"name*"); 
bool exists = files.Length > 0; 

if (exists) 
{ 
    //Get file info - assuming only one file here.. 
    FileInfo fi = new FileInfo(files[0]); 

    //Or loop through all files 
    foreach (string s in files) 
    { 
     FileInfo fi = new FileInfo(s); 
     //Do something with fileinfo 
    } 
} 
+1

gracias por apuntarme en la dirección correcta, Tu podría ser una respuesta, pero cuando llega la extensibilidad @Hatake Kakashi responde me parece bien – Deeptechtons

2

puede utilizar DirectoryInfo.GetFiles() tener un FileInfo[] en lugar de un String[].

+1

gracias por apuntarme a pensar simple. Estaba usando una versión sobrecargada en su lugar – Deeptechtons

Cuestiones relacionadas