Question

Je suis en train d'ouvrir un fichier qu'un utilisateur peut définir. En d'autres termes, il ne sera jamais un chemin de jeu ou d'un fichier. Ainsi, lorsque l'utilisateur a sélectionné le fichier qu'ils veulent ouvrir ce bouton ci-dessous va ouvrir. Je l'ai déclaré et p1 comme l1 chaînes publiques.

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

Il suffit donc de passer en revue, je veux ouvrir le fichier juste en utilisant le chemin du répertoire et nom de fichier. Est-ce possible? Je peux juste avoir là p1 et il va ouvrir un explorateur me montrant ce répertoire. Merci pour la recherche.

Était-ce utile?

La solution

Oui, il fonctionnera, mais je vous recommande de mettre à jour votre code ceci:

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

Autres conseils

Vous ne devriez pas utiliser la concaténation de chaîne pour combiner un répertoire et nom de fichier. Dans votre cas, la chaîne résultante ressemblera à ceci:

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

Path.Combine .

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

Pourquoi ne pas vous faire simplement ceci: -

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);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top