Domanda

Sto cercando di aprire un file che un utente può impostare. In altre parole non sarà mai un percorso o un file set. Quindi, quando l'utente ha selezionato il file, desidera aprire questo pulsante di seguito lo aprirà. Ho dichiarato L1 e P1 come stringhe pubbliche.

    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);
    }

Quindi, solo per rivedere, voglio aprire il file solo usando il percorso di directory e il nome file. È possibile? Posso solo avere P1 lì e aprirà un esploratore che mi mostra quella directory. Grazie per aver guardato.

È stato utile?

Soluzione

Sì, funzionerà, ma ti consiglierei di aggiornare il tuo codice invece:

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

Altri suggerimenti

Non dovresti usare la concatenazione delle stringhe per combinare una directory e un nome file. Nel tuo caso la stringa risultante sarà così:

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

Usa invece Path.Combine.

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

Perché non lo fai semplicemente: -

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);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top