Pregunta

Estoy tratando de abrir un archivo que un usuario pueda establecer. En otras palabras, nunca será una ruta o archivo establecido. Entonces, cuando el usuario haya seleccionado el archivo, desea abrir este botón a continuación, lo abrirá. He declarado L1 y P1 como cuerdas públicas.

    public void button4_Click(object sender, EventArgs e)
    {

         DialogResult result = openFileDialog1.ShowDialog();
         if (result == DialogResult.OK)
         {

             l1 = Path.GetFileName(openFileDialog1.FileName);
             p1 = System.IO.Path.GetDirectoryName(openFileDialog1.FileName);

         }


    public void button2_Click(object sender, EventArgs e)
    {
    //p1 = directory path for example "C:\\documents and settings\documents"
    //l1 = filename

        Process.Start(p1+l1);
    }

Entonces, para revisar, quiero abrir el archivo solo usando la ruta del directorio y el nombre de archivo. es posible? Puedo tener P1 allí y abrirá un explorador que me muestra ese directorio. Gracias por mirar.

¿Fue útil?

Solución

Sí, funcionará, pero le recomendaría que actualice su código esto en su lugar:

var path = Path.Combine(p1, l1);
Process.Start(path);

Otros consejos

No debe usar la concatenación de cadenas para combinar un directorio y un nombre de archivo. En su caso, la cadena resultante se verá así:

C:\documents and settings\documentsfilename
                                  ^^
                             this is wrong

En su lugar, use Path.Combine.

string path = Path.Combine(p1, l1);
Process.Start(path);

¿Por qué no simplemente haces esto? -

public void button4_Click(object sender, EventArgs e)
{
    string fileNameWithPath;
    DialogResult result = openFileDialog1.ShowDialog();
    if (result == DialogResult.OK)
    {
        fileNameWithPath = openFileDialog1.FileName;
    }
}

public void button2_Click(object sender, EventArgs e)
{
    Process.Start(fileNameWithPath);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top