Laden...

NotSupportedException beim Speichern [bzw. im Zusammengang mit Dateipfaden]

Erstellt von Gh0st21 vor 9 Jahren Letzter Beitrag vor 9 Jahren 3.277 Views
Thema geschlossen
G
Gh0st21 Themenstarter:in
26 Beiträge seit 2014
vor 9 Jahren
NotSupportedException beim Speichern [bzw. im Zusammengang mit Dateipfaden]

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. 😃

1.696 Beiträge seit 2006
vor 9 Jahren

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

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

4.221 Beiträge seit 2005
vor 9 Jahren

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...

2.207 Beiträge seit 2011
vor 9 Jahren

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

Thema geschlossen