Hallo liebes Forum 😃
Ich hoffe, ihr könnt mir bei mein kleines Problem behilfich sein.
Mein Problem ist, dass sich meine Datei irgendwie nicht Speichern lässt.
Das wird mir angezeigt> Fehlermeldung:
Ein Ausnahmefehler des Typs "System.NotSupportedException" ist in mscorlib.dll aufgetreten.
Mein Dazu gehöriger Code
private void btnSave_Click(object sender, EventArgs e)
{
string sFile = sPath + this.labName;
sPath = Directory.GetCurrentDirectory() + "\\Aufnahmestelle\\";
if (!Directory.Exists(sPath)) Directory.CreateDirectory(sPath);
if (!File.Exists(sFile))
{
File.WriteAllText(sPath + this.labName, "TestAufnahme");
}
else MessageBox.Show("Sie haben Bereits eine Aufnahme mit dem " + this.labName + ", bitte wählen Sie einen anderen Namen aus.");
}
Vielleicht zu Übersichtshalbar ma mehr Code, vielleicht findet Ihr ja mehr Fehler oder ein Verbesserungsvorschlag.
Meine Form1 (Hauptform), Variable Speichern & in mein Vorschau-Form übergeben.
Variable Speichern
Name = this.tbxName.Text;
iBild = this.pbBild.Image;
Farbe = this.tbxFarbe.Text;
Alter = this.tbxAlter.Text;
aufnahme = System.DateTime.Now.ToShortDateString();
haltung = this.tbxHaltung.Text;
// Rasse prüfen
if (this.tbxRasse.Text == "") Rasse = "Rasse nicht bekannt";
else Rasse = this.tbxRasse.Text;
// Geschlecht speichern
if (this.rbtnGeschlechtM.Checked) geschlecht = "Männlich";
else if (this.rbtnGeschlechtW.Checked) geschlecht = "Weiblich";
else geschlecht = "Nicht bekannt";
// Impfung speichern
if (this.rbtnImpfungJa.Checked) impfung = "Wurde geimpft";
else if (this.rbtnImpfungNein.Checked) impfung = "Wurde nicht geimpft";
else impfung = "Impfung icht bekannt";
// Geschlecht speichern
if (this.rbtnKastriertJa.Checked) kastriert = "Wurde kastriert";
else if (this.rbtnKastriertNein.Checked) kastriert = "Wurde nicht kastriert";
else kastriert = "Kastration nicht bekannt";
}
Variable Übergeben
private void btnVorschau_Click(object sender, EventArgs e)
{
varSpeichern();
vorschau vorschau = new vorschau();
// Persönliches - Seite 1
vorschau.labAlter.Text = Alter;
vorschau.labFarbe.Text = Farbe;
vorschau.labGeschlecht.Text = geschlecht;
vorschau.labImpfung.Text = impfung;
vorschau.labKastriert.Text = kastriert;
vorschau.labName.Text = Name;
vorschau.labRasse.Text = Rasse;
vorschau.bild.Image = iBild;
vorschau.bild.SizeMode = PictureBoxSizeMode.StretchImage;
vorschau.labAufnahme.Text = aufnahme;
vorschau.labHaltung.Text = haltung;
vorschau.Show();
}
& in meiner Vorschau-Form erstelle ich das hier
private void btnSave_Click(object sender, EventArgs e)
{
string sFile = sPath + this.labName;
sPath = Directory.GetCurrentDirectory() + "\\Aufnahmestelle\\";
if (!Directory.Exists(sPath)) Directory.CreateDirectory(sPath);
if (!File.Exists(sFile))
{
File.WriteAllText(sPath + this.labName, "TestAufnahme"); // Hier soll der Fehler liegen jedoch weiß ich nicht wie ich das beweltigen soll
}
else MessageBox.Show("Sie haben Bereits eine Aufnahme mit dem " + this.labName + ", bitte wählen Sie einen anderen Namen aus.");
}
Wie auch oben schon gezeigt.
Mir wird aber auch bei "Details" angezeigt -> > Fehlermeldung:
{"Das angegebene Pfadformat wird nicht unterstützt."} . Ich habe mir die erstellen anhand eines Tutorials angeeignet, jedoch kann ich nirgendswo feststellen wo er eine Dateiendung eingebaut hat? also ich steh grad auf dem schlauch & hoffe, mit euch mein Probleme gemeinsam bewelitgen zu könne. 😃
Hallo,
bitte Path.Combine für das Zusammenbauen von Verzeichnis/Dateiname verwenden, dann wirst du solche Fehler nicht erhalten.
Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1
Grüße
**:::
Zusätzlich zu dem was vbprogger geschrieben hat....
Das findest Du sehr einfach raus beim Debugging...
z.B: setzt Du sFile zusammen aus sPath und labName... dies bevor Du sPath gesetzt hast... das kann ja nicht funktionieren...
Directory.Exists wenn am Pfad die Backslashes dran hängen... auch das ist nicht unbedingt schlau...
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
Hallo Gh0st21,
alles in allem läuft das auf string-operationen hinaus. Diese setzen wir hier als Grundlagen voraus. Auch die Path-Methode wurde schon genannt.
Ebenfalls der Debugger, mit dem du dieses Problem leicht lokalisieren kannst. [Artikel] Debugger: Wie verwende ich den von Visual Studio?
Bitte beachte [Hinweis] Wie poste ich richtig? 1.1 und 1.1.1
Auch machen wir keine Code-Reviews. Auch wenn du das nicht direkt gefordert hast ist es immer unglücklich, wenn man allen Code postet und fragt, wo der Fehler ist. Wie gesagt, ein Code-Ausschnitt hätte es getan.
[Hinweis] Wie poste ich richtig? Punkt 4a und 5 und auch Punkt 6
Daher ist hier zu
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck