Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

C# Problem mit SaveFileDialog

Empfohlene Antworten

Veröffentlicht

Hi,

ich habe einen SaveFileDialog angelegt und folgende Werte initialisiert:

this.dlgSave.InitialDirectory = "C:\\";

this.dlgSave.DefaultExt = "txt"; // Hier Fehler

this.dlgSave.FileName = "NeueTextdatei";

this.dlgSave.Filter = "Textdateien|*.txt";

this.dlgSave.FilterIndex = 0;

this.dlgSave.Title = "Datei speichern unter...";

Jetzt stürzt der mir allerdings mit folgender Fehlermeldung ab:

http://img153.imageshack.us/img153/8550/netfiledialogerror5pt.jpg

Ich benutze Borland C# Builder 2006...

Danke im Voraus

cu Patrick

  • Autor

Das hat mich dann schomma ne Ecke weiter gebracht.

Habe jetzt folgenden Code in mein Programm eingefügt.

using System.Security.Permissions;

[assembly: FileIOPermission(SecurityAction.RequestMinimum, Unrestricted=true)]

Bringt natürlich nur in sofern was, als das mein Programm jetzt vorher abfragt ob die Berechtigungen gesetzt sind oder nicht, wenn ich das richtig verstanden habe.

Aber wo kann ich die Berichtigungen denn setzen?

In der .NET-Konfiguration oder wo?

bzw. wie weiße ich meinen Programm die Berechtigungen/Rollen zu?

Hi,

Die Berechtigung wird in der Tat über die .Net-Konfiguration gesteuert. Blöde Frage: Hat der Anwender denn überhaupt die Berechtigung auf C:\ zuzugreifen?

Falls das Problem immer noch auftritt: Könntest du mal einen try...catch-Block drumherum legen, so dass wir den genauen Typus der Exception bekommen. (SecurityException kann ja viel sein)

Ansonsten ists komisch, da die MSDN zu InitialDirectory fast dasselbe nutzt.

Gruß,

Honky

  • Autor

Irgendwie bin ich was .NET angeht wohl zu blöd...

Bin da noch totaler Anfänger...

Gibts da irgendwie sowas wie ein Tutorial oder sowas, was mal die kurze Vorgehensweise beschreibt?

Irgendwie habe ich nämlich keinen Schimmer wie ich da die Berechtigungen setzen soll :D

Probier mal bitte:

this.dlgSave.InitialDirectory = "C:\\";

            try

            {

                this.dlgSave.DefaultExt = "txt"; // Hier Fehler

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

                MessageBox.Show(ex.Source);

            }

            this.dlgSave.FileName = "NeueTextdatei";

            this.dlgSave.Filter = "Textdateien|*.txt";

            this.dlgSave.FilterIndex = 0;

            this.dlgSave.Title = "Datei speichern unter...";

Interessant wäre da, was dir als FehlerMessage und als FehlerSource angezeigt wird!

Arbeitest Du auf einem Netzlaufwerk? Funktioniert es lokal (HDD in Deinem Rechner)? Funktioniert es, wenn Du Admin-Rechte hast? Hast Du die .NET-Konfiguration irgendwann mal verändert?

  • Autor
Arbeitest Du auf einem Netzlaufwerk? Funktioniert es lokal (HDD in Deinem Rechner)? Funktioniert es, wenn Du Admin-Rechte hast? Hast Du die .NET-Konfiguration irgendwann mal verändert?

Richtig, das Programm liegt auf einem Netzlaufwerk.

Lokal habe ich das noch nich ausprobiert - werde ich mal machen.

Admin-Rechte habe ich so oder so.

Nö, an der .NET-Konfiguration habe ich nix geändert, fange ja gerade erst mit diesem Kram an :D

  • Autor
Richtig, das Programm liegt auf einem Netzlaufwerk.

Lokal habe ich das noch nich ausprobiert - werde ich mal machen.

Admin-Rechte habe ich so oder so.

Nö, an der .NET-Konfiguration habe ich nix geändert, fange ja gerade erst mit diesem Kram an :D

Also lokal auffer Festplatte klappt das...

Muss man das verstehen?

Ja, ist verständlich. Netzlaufwerke gehören einer anderen Sicherheitszone an. Ich hatte mal das Problem, das chm-Hilfe-Dateien, die auf einer Netzfreigabe lagen, nicht mehr aufgerufen werden konnten. Die Datei ließ sich öffnen, jedoch wurden die komprimierten HTML-Seiten nicht angezeigt...

Also lokal auffer Festplatte klappt das...

Muss man das verstehen?

Ja. .NET-Programme, die über das Netz gestartet werden, unterliegen aus Sicherheitsgründen gewissen Beschränkungen. Verwende am Besten die lokale Festplatte für den Programmstart, alles andere erfordert mehr Aufwand, ist aber auch möglich.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.