none
asignar ruta de archivo a una variable RRS feed

  • Pregunta

  • Buenas tardes.

    Tengo el siguiente código, donde en la variable  pathFile  se define la ruta del archivo. Lo que quiero es que el valor de esa variable se pueda modificar. Es decir, crear un fichero en un sitio específico y que esa ruta se asigne a la variable.

    //string pathFile= @"C:\Users\Personal\Libro.txt;  ---> directorio por defecto que quiero sustituir

    string pathFile;

    private void btn_Ruta_Click(object sender, EventArgs e)
            {
                SaveFileDialog rutaFichero = new SaveFileDialog();
                rutaFichero.Filter = "Ficheros txt|*.txt";

                if (rutaFichero.ShowDialog() == DialogResult.OK)
                {
                    string pathFile = Path.GetDirectoryName(rutaFichero.FileName);
                }
            }

    Al depurar, después del cuadro de diálogo, donde se le asigna el nombre al nuevo fichero, la variable pathFile permanece en null y debería de tener el valor de (rutaFichero.FileName).

    Cómo puedo solucionarlo?  Influye para algo la "@" ?

    Gracias. Salud para todos.

    miércoles, 3 de abril de 2019 23:18

Todas las respuestas

  • Solo tienes que quitar la palabra "string" aquí:

    string pathFile = Path.GetDirectoryName(rutaFichero.FileName);

    Fíjate que si pones "string" estás declarando otra variable "pathfile" que es local a ese bloque, con lo que el valor seleccionado se asigna a esa variable y no al "pathfile" que tienes a nivel de clase.

    El compilador te avisa cuando haces eso (declarar dos variables con el mismo nombre) en dos bloques anidados uno dentro de otro, pero no te avisa si una de las variables está a nivel de clase y la otra es una variable local.

    jueves, 4 de abril de 2019 6:40
    Moderador
  • Muchas gracias Alberto.

    Era simplemente eso. No me había dado cuenta.

    Por cierto, he tenido que modificar la linea a esto para que me diera la ruta completa incluido el nombre del fichero:

    pathFile = Path.GetFullPath(rutaFichero.FileName);

    y ya funciona correctamente.

    Salud para todos.

    jueves, 4 de abril de 2019 11:03