Autor Beitrag
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 12.08.18 20:19 
So, da bin ich wieder - ich hatte das schöne Wetter für einen Ausflug genutzt. ;-)

user profile icontomo2403 hat folgendes geschrieben Zum zitierten Posting springen:
Bei AppData funktioniert es auch nicht!
Er versucht außerdem das ganze unter D:\ zu speichern. (es soll aber C:\)


Was gibt denn Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) zurück? Hast du deine System-Verzeichnisse auf mehrere Partitionen verteilt? Oder hat der aktuelle Benutzer nur spezielle Rechte?

Es gibt ja auch noch SpecialFolder.CommonApplicationData sowie SpecialFolder.LocalApplicationData, s. Environment.SpecialFolder-Enumeration.

Trotzdem solltest du den Code von Ralf verwenden:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
public void Save(string path)
{
    Directory.CreateDirectory(Path.GetDirectoryName(path));
    // ...
}
(denn wenn du diese Methode mit einem anderen Pfad als folder aufrufst, dann würden ja nicht die passenden Unterverzeichnisse angelegt)
Und das Rechteproblem solltest du getrennt davon angehen (also z.B. kannst du als Benutzer über den Explorer in diesem Verzeichnis Unterverzeichnisse erstellen?).

PS: Warum speicherst du die serialisierten Daten unter ".dll" ab? ".config" oder ".txt" o.ä. wäre wohl passender.
Und zum Zusammensetzen von Pfaden solltest du generell Path.Combine verwenden (nicht "\\...")!
tomo2403 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 46

Win10
C#, VS 2019
BeitragVerfasst: Di 14.08.18 15:05 
Ich werde Wahnsinnig! Jetzt hat er auch auf D:\ keine Rechte mehr!

Mein System lieg allein auf C:\ und der Benutzer ist Administartor. An den rechten habe ich nichts verändert.

Bei SpecialFolder.CommonApplicationData und SpecialFolder.LocalApplicationData funktioniert es auch nicht.
Der Code von Ralf hat auch nichts gebracht.

Warum .dll? Weil die wenigsten darauf kommen diese Datei im txt-Editor zu öffnen um die Werte zu verändern.
.config ist auserdem eine Datei die von VS erstellt wird. Ich möchte nicht, dass mein Projekt nochmal kaputt geht. (diesen Fall hatte ich schonmal (lange Geschichte)).

Mal so neben bei: Thema ansehen
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von tomo2403 am Mi 15.08.18 15:38, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 14.08.18 18:39 
user profile icontomo2403 hat folgendes geschrieben Zum zitierten Posting springen:
Mal so neben bei: Wie kann ich eine Konsole über eine WinForm starten lassen das diese Angezeigt wird? (WinForm(ein Projekt) + ConsolenApp(ein Projekt) (= beides in einer Peojektmappe))
Erstelle für eine neue Frage bitte auch einen neuen Thread im Forum, damit das hier nicht durcheinander geht. Danke! :)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 15.08.18 13:33 
- Nachträglich durch die Entwickler-Ecke gelöscht -
tomo2403 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 46

Win10
C#, VS 2019
BeitragVerfasst: Mi 15.08.18 15:24 
Nicht ganz!

Path.Combine kann nur zwei strings kombinieren.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
// geht nicht!
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "T-App Germany""Knuffi, der programmierbare Hund");

// geht!
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "T-App Germany\\Knuffi, der programmierbare Hund");


Das speichern funktioniert ... aber das laden nicht! (siehe Bild)
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
                AppData appData = new AppData();
                try
                {
                    appData.AdminToolData = "Some text";
                    appData.Save("SomeFile.txt");
                }
                finally
                {
                    appData = null;
                }

                try
                {
                    appData.Load("SomeFile.txt");
                    MessageBox.Show(appData.AdminToolData);
                }
                finally
                {
                    appData = null;
                }
Einloggen, um Attachments anzusehen!
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 15.08.18 15:39 
- Nachträglich durch die Entwickler-Ecke gelöscht -
tomo2403 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 46

Win10
C#, VS 2019
BeitragVerfasst: Mi 15.08.18 15:52 
Ach ich Vollidiod! Ich habe alles kopiert und diese eine Zeile gelöscht weil das Program gesagt hat das appData schon vorhanden ist. Das ich den Namen ändern muss habe ich überhauptnicht gemerkt :!:

Das mit Path.Combine funktioniert aber zumindest nicht so, wie du es hingeschrieben hast!

Aber trozdem ein Danke an alle!
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 15.08.18 15:58 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: tomo2403
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 15.08.18 16:28 
Zitat:
Path.Combine() scheint scheinbar nur bei dir ein Problem darzustellen.


Jeder der gegen ein Framework arbeitet kleiner als Net 4 hätte dieses Problem ;) Die entsprechenden Überladungen gibt es erst seit dem.

Für diesen Beitrag haben gedankt: tomo2403
tomo2403 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 46

Win10
C#, VS 2019
BeitragVerfasst: Do 16.08.18 16:02 
Da liegt das Problem! Mein Projekt ist in 3.0 :idea:
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 16.08.18 19:23 
Dann führe die Methoden nacheinander aus (mit jeweils 2 Parametern) oder wechsle auf .NET 4.0 (oder höher).