Hier die Komplettlösung
Hallo,
also grundsätzlich kann man mit Process.Start(); alles öffnen. Wenn es kein exe Programm ist, wird das dafür vorgesehene Standaradprogramm geöffnet. Gibt es kein Standardprogramm dafür, dann Stürtzt dein Programm ab. Deswegen würde ich dir empfehlen das in einem Try-Catch Block zu schreiben. Try {} wie der name schon sagt, versucht etwas und catch (Exception) {} fängt alle Fehler ab und führt dann aus, was im catch Block steht. Das Schlüsselwort Exception steht für alle Fehler. Mit z. b. Exception.DivideByZero wird nur der catch Block ausgeführt, wenn jemand versucht hatte durch 0 zu dividieren. Also du kannst also auch einen try Block haben, aber verschiedene catch Blöcke, die verschiedene Sachen abfangen. Wenn du deinen Benutzer wissen lassen, was schief gelaufen ist, dann hängst du einfach an Exception ein wort oder buchstaben noch an. z. b.:
catch (Exception e)
{
Console.WriteLine("Das ist schief gelaufen" + e);
}
Grundsätzlich kannst du folgendermaßen prüfen, ob eine Datei existiert:
if (File.Exists(@"C:\Pfadname\Dateiname.Formatierungstyp")
{
//Was passieren soll, wenn die Datei existiert.
}
Da ich mal Zeit habe zum Proggen, stelle ich dir hier die Komplettlösung mal vor (wenn ich deine Angaben richtig verstanden habe):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
namespace projekt_htmlforum
{
public partial class Form1 : Form
{
string path = null;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
path = textBox1.Text; //Speichert zeichen Für Zeichen in dem String "path" Wenn du sehen willst, wie es arbeitet, dann mache die Kommentarzeichen aus der nächsten Zeile raus:
/*if (path != "")
{
MessageBox.Show("Sie haben einen Buchstaben eingegeben!");
}*/
}
private void button1_Click(object sender, EventArgs e)
{
//Prüfen, ob die Datei existiert:
try
{
if (File.Exists(@path))
{
Process.Start(@path);
MessageBox.Show("Datei gefunden, die Datei wurde gestartet!");
//falls du nach öffnen der Datei das Prgromm beenden möchtest:
//this.Close();
//oder verstecken (läuft immer nocher weiter):
//this.Hide();
}
}
catch (Exception fehler)
{
MessageBox.Show("Ein Fehler ist aufgetreten, bitte überprüfen Sie ihre Pfadangabe \n Programmfehler: " + fehler);
path = null;
}
}
}
}
Ich stelle dir hier nur die Codierung bereit, um deine Windows Form, also wie sie aussieht, das musst du noch selber machen. Ich bin bei dem Textfeld und dem Button von den Standardwerten ausgegangen. Also das Button z. b. heißt bei mir immer noch „button1“. Das Programm (mit einer Windows Form) würde so an sich gehen, habs selbst mit VS getestet!
Falls du sonst noch Fragen hast, melde dich bei mir (PN). Ich weiß wie das ist, wenn man programmieren lernt, aber keinen Ansprechpartner hat, der einem weiterhelfen kann. So hatte ich auch auch mal angefangen vor Jahren.
MFG derwunner