| 

.NET C# Java Javascript Exception

6
Hallo,

wie ich leidvoll erfahren musste, dürfen Programme die als nicht-Admin ausgeführt werden im Programme-Ordner keine Daten mehr ablegen (z.B. Benutzereinstellungen oder sonstige TExtdateien die später ausgelesen / geschrieben werden sollen).

Daher wollte ich jetzt meine Dateien in einem Unterordner des Appication-Data-Order ablegen:

string sPath;
sPath = Environment.GetFolderPath
(System.Environment.SpecialFolder.CommonApplicationData);
Console.WriteLine("Temporary Path := " + sPath);


Aber in einem Unterordner dieses Pfades dürfen Standarduser nichts schreiben / keine Dateien erstellen.
Gibt es einen anderen Ordner den man nimmt (und der dem Standard entspricht!!) ?
Oder setzt man Schreibrechte??

Viele Grüße


Silvi
News:
22.10.2012
Silvia1963 320 1 2 7
Silvia1963 320 1 2 7
3 Antworten
5
Schau Dir mal diese Übersicht an.

Kurz: Microsoft erwartet, dass der Installer Deines Programms einen Unterordner in CommonApplicationData.CommonApplicationData anlegt und passende Zugriffsrechte vergibt. Beachte auch
settings changed here should affect every user on the machine
. Also nicht gerade der passende Ort für Benutzereinstellungen.

Aber Dein Beispielcode sieht sehr nach C#, also .NET aus - warum nutzt Du nicht einfach die ApplicationSettings und läßt .NET sich um den Ablageort kümmern?
22.10.2012
Matthias Hlawatsch 13,2k 4 9
Danke für Deine Antwort.
Die ApplicationSettings sind natürlich eine gute Idee. Aber ich habe 2 XML-Dateien, jeweils 3 MB groß, die ich zur Laufzeit nachladen möchte.
Daher kommt eher der CommonApplicationData - Pfad in Frage. Leider habe ich kenie Ahnung, wie ich dem Setup-Tool aus VS 2010 beibringe, dort zu speichern bzw. Rechte anzulegen. Ich werde dies als neue Frage posten.
Silvia1963 23.10.2012
0
Hallo,

eine weitere Möglichkeit Daten deiner Applikation zu speichern ist die Verwendung des IsolatedStorage. Hier kann dein Programm auch ohne Admin-Rechte immer Daten speichern und lesen.

Ein paar weiterführende Links dazu, die ich auf die schnelle gefunden habe:

Isolated-Storage-in-NET-to-store-application-data
lesen-schreiben-und-loschen-im-isolatedstorage

Hoffe das hilft dir ein bischen weiter.

Gruß
Stefan
23.10.2012
stefbauer 71 3
-1
Zur Technik kann ich wenig beitragen, aber zur Diskussion um Standards und "Standards": M$ als Quelle von Standards, das ist für mich eine Lachnummer. Wir reden hier über M$-Standards. Der Umgang von M$ mit allgemeinen Standards ist leider gekennzeichnet durch folgende Merkmale:


  • M$ will immer eigene, proprietäre Standards gegen allgemeine setzen.
  • M$ nutzt (M$-) Standards dafür, seine Lösungen allein gangbar zu machen.
  • Angebliche Sicherheitsfeatures wie der hohe Schutz für %ProgramFiles% und angebliche Komfortfunktionen wie die nur in der Windows-Explorer-Anzeige lokalisierten Bezeichner für Systemordner wie %ProgramFiles% (von M$ so genannte "Datei- und Ordnervirtualisierung") sind schlecht umgesetzte, größtenteils schon im Ansatz fehlgeleitete Ärgernisse und Placebos.


Fazit für mich: Auf diese "Standards" ... Um diese "Standards" schere ich mich nicht.
23.10.2012
mupan 575 1 8
3
-1 Du trägst zur "Technik" nicht wenig, sondern gar nichts bei. Über Standards haben wir hier auch nicht diskutiert, sondern über eine konkrete Lösung für das von Silvia formulierte Problem.
Was Du schreibst, ist nichts weiter als Deine persönliche Meinung, nach der hier niemand gefragt hat und die niemandem weiterhilft.
Matthias Hlawatsch 23.10.2012
2
Ich denke, durch die anachronistische Verwendung von "M$" beraubst du dich jeder Glaubwürdigkeit, das hat nichts mit Sachlichkeit zu tun. Entwickel halt nicht für Microsoft-Systeme oder mit .Net und gut ist. Im vorliegenden Fall gibt es ja sogar eindeutige Richtlinien (immerhin ist es das OS von MS). Wenn du sie nicht befolgst, dann ist das dein Problem (und das der User deiner Programme).
LunaticShade 23.10.2012
2
Ja klar, wirtschaftlich erfolgreiche Auto- und Straßenbauer sollten für Verkehrsregeln zuständig sein ... Man hat immer zwei Möglichkeiten: selber nachdenken und kommunizieren, oder Regeln von autorisierten Normengebern befolgen. Auch ein Marktführer unterliegt in Europa europäischem und nationalem Recht und Normen. Und da gibt es ein paar Stellen, die am Arbeiten hindern, weil sie den User unnötig gängeln. -- Mir ist klar, dass Leute, die die Bewertungsfunktion gegen Meinungen und nicht zur Qualitätssicherung nutzen, sich nicht von Argumenten irritieren lassen. Damit kann ich gut leben.
mupan 24.10.2012
2
Es ging mir in meinem Kommentar nicht um die MS-Politik bzgl. anerkannter Standards in ihren Produkten (die teilweise tatsächlich fragwürdig ist), sondern um die Richtlinien auf ihren eigenen Systemen (wo zum Beispiel temp. Dateien abgelegt werden sollen). Wenn du dich in deinem Beitrag aber nicht einmal im Ansatz auf die ursprüngliche Frage bezogen hast, dann versteh ich den Grund deiner Antwort nicht, außer die wolltest einfach MS bashen ohne Bezug zum Thema. Dir scheint es ja eher um tatsächliche Standards (Protokolle, etc.) zu gehen, und davon ist hier ja nun überhaupt keine Rede
LunaticShade 24.10.2012
2
Das ist eine Kritik, die ich mir anziehe: Falscher Ort. Sorry dafür.
mupan 24.10.2012
Dir sei verziehen ;)
LunaticShade 25.10.2012

Stelle deine Dictionary-Frage jetzt!