11 feb 2009

Trabajando con Archivos y Carpetas: System.IO.Path

La clase System.IO.Path provee una serie de métodos para realizar las tareas más comunes a la hora de trabajar con rutas de archivos o directorios, a continuación veremos los métodos de esta clase y para qué sirve cada uno.



  • System.IO.Path.AltDirectorySeparatorChar : Devuelve el caracter alternativo usado como separador de directorios en el sistema actual. Generalmente "/".

  • System.IO.Path.ChangeExtension("C:\prueba.txt", "xml") : Cambia la extensión del archivo pasado como primer parámetro, en este ejemplo devuelve C:\prueba.xml.

  • System.IO.Path.Combine("C:\Directorio1\", "prueba.xml") : Combina ambas rutas para generar una sola. Atención al segundo parámetro porque si empieza con el separador de directorio no funcionará como esperamos.

  • System.IO.Path.DirectorySeparatorChar : Devuelve el caracter usado como separador de directorios en el sistema actual. Generalmente "\".

  • System.IO.Path.GetDirectoryName("C:\Directorio1\prueba.txt") : Devuelve la ruta al directorio según la ruta que recibe por parámetro. En este ejemplo devuelve "C:\Directorio1"

  • System.IO.Path.GetExtension("C:\Directorio1\prueba.xml") : Devuelve la extensión del archivo que recibe por parámetro, por el ejemplo ".xml" si el archivo no tiene extensión devuelve "".

  • System.IO.Path.GetFileName("C:\Directorio1\prueba.xml") : Devuelve el nombre del archivo especificado en el parámetro sin el resto de la ruta. En este ejemplo devuelve "prueba.xml". Si la ruta especificada termina con el separador de directorios, devuelve "".

  • System.IO.Path.GetFileNameWithoutExtension("C:\Directorio1\prueba.xml") : Idem que GetFileName() pero sin extensión. En el ejemplo "prueba"

  • System.IO.Path.GetFullPath("C:") Devuelve la ruta actual sobre la unidad C: Por ejemplo "C:\miApp\bin\Debug

  • System.IO.Path.GetFullPath("\prueba1") : Devuelve la ruta absoluta, toma en cuenta la unidad actual o la ruta actual.

  • System.IO.Path.GetInvalidFileNameChars() : Devuelve los caracteres que no pueden formar parte del nombre de un archivo

  • System.IO.Path.GetInvalidPathChars() : Devuleve los caracteres no válidos para una ruta.

  • System.IO.Path.GetPathRoot("C:\Directorio1\prueba.xml") : Devuelve la raíz de la ruta especificada, en este caso "C:\"

  • System.IO.Path.GetRandomFileName() : Devuelve un nombre randómico para usar como nombre de archivo o directorio.

  • System.IO.Path.GetTempFileName() : Devuelve un nombre de archivo temporal, apuntando al directorio especificado en %TEMP%. Por ejemplo "C:\Documents and settings\usuario\Configuración local\Temp\tmp131E.tmp"

  • System.IO.Path.GetTempPath() : Devuelve la ruta al directorio temporal, siguiendo con el ejemplo anterior, "C:\Documents and settings\usuario\Configuración local\Temp\"

  • System.IO.Path.HasExtension("C:\prueba.xml") : Devuelve un valor Boolean indicando si la ruta especificada contiene una extensión, en el ejemplo la extensión es ".xml" o sea que devuelve True

  • System.IO.Path.IsPathRooted("..\Directorio1\prueba.xml") : Devuelve un valor Boolean indicando si la ruta especificada es absoluta o no, en el ejemplo la ruta es relativa por lo que devuelve False

  • System.IO.Path.PathSeparator : Devuelve el separador de rutas, generalmente ";"

  • System.IO.Path.VolumeSeparatorChar : Devuelve el caracter separador de volúmenes, generalmente ":"


Estos son todos los miembors de la clase System.IO.Path con una breve descripción de cada uno.

4 comentarios:

  1. Hola!
    Necesito ayuda ya que estoy teniendo un problema con el System.IO.Path.GetFullPath(NombreArchivo) Solia funcionar bien pero desde que se cambio el sistema operativo a las maquinas, devuelve el directorio donde esta guardado el proyecto mas "/NombreArchivo" en lugar de a direccion correcta donde se encuentra el documento que intento abrir, obviamente no lo encuentra y produce un error. No se si se debera al cambio de la configuración del usuario. Agradezco de antemano la ayuda que puedan darme al respecto

    Saludos

    ResponderEliminar
  2. RT: No entiendo muy bien tu problema, dónde se supone que está el archivo que quieres abrir?

    ResponderEliminar
  3. Por favor su ayuda, tengo un problema al utilizar el método System.IO.File.Copy cuando utilizo carpetas Web

    ResponderEliminar
  4. Andrés podrías describir un poco más tu problema?

    ResponderEliminar