2010-10-15 1 views
9

ich einige Dateien speichern möchten, und bearbeiten sie für meine Software gemeinsam Anwendungsdaten unter Windows 7.Windows 7 erlaubt mir nicht, Dateien zu bearbeiten, in Common Application Data Ordner

Ich weiß nicht, warum Windows 7 doesn‘ t erlaube meiner Software, Dateien zu ändern, es sei denn ich sie als Verwalter laufen lasse.

Wo kann ich meine Dateien speichern, so dass keine Administratorrechte erforderlich sind?

+0

Welcher gemeinsame Ordner? –

+0

@Henk: CommonApplicationData – Ata

Antwort

6

Sie sollten Ihre Anwendungsdaten in einem Unterordner unter Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); speichern. Beachten Sie, dass dieser Ordner benutzerspezifisch ist.

Benutzer ohne Administratorberechtigung sind nicht berechtigt, in den Ordner CommonApplicationData zu schreiben, da dieser Ordner nicht bestimmten Benutzern gehört.

Beachten Sie, dass Sie Ihre Einstellungen auch mithilfe der Einstellungs-Klasse speichern können. Um dies zu tun, fügen Sie Ihrem Projekt Neues Element hinzu, wählen Sie "Einstellungsdatei". Dies ist für Grundeinstellungen wie Strings und Zahlen geeignet.

3

Sie müssen die Höhe verwenden, um diese Dateien aufgrund der Benutzerzugriffssteuerung zu ändern. Werfen Sie einen Blick auf diese MSDN-Artikel für weitere Informationen: MSDN article about UAC

Wenn Sie nicht sicher sind, wie dies in C# zu tun, hier ist ein Artikel: Article about requesting elevation in C#

+0

+ 0: Erhöhung nur zum Speichern von Anwendungseinstellungen ist eine schlechte Idee. – Brian

+0

Elevation wird nicht benötigt, um allgemeine App-Daten zu schreiben ... Aber Anwendung sollte innerhalb Administrator-Account laufen .... –

3

Einige Ordner beschränkt beginnen in windows 7, diese Ordner sollte nicht berührt werden, es sei denn, Sie installieren, deinstallieren oder patchen. Bitte sehen Sie my answer that you accepted from earlier today es ist genau der gleiche Fall.

Wenn Sie mehrere aplications haben, die die gleichen Dateien bearbeiten müssen, sollten sie in

Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) 

System.Environment.SpecialFolder.CommonProgramFiles gespeichert werden (der Ordner, ich glaube, Sie versuchen zu schreiben) ist nur lesen, wenn Sie erhöht sind.

lesen Sie this article von der MSDN erklärt es, wo Sie Daten speichern sollten und wie Sie die verschiedenen Ordner richtig verwenden. Meine Lösung ist die erste auf seiner Liste, um zusammenzufassen:

Sie müssen einen Ordner erstellen, während Sie das Programm im Ordner CommonApplicationData installieren, dann Berechtigungen für diesen neuen Ordner festlegen, so dass es Schreibzugriff von den Benutzern haben wird Gruppe.

+0

Ich habe dies verwendet, und speicherte meine Dateien in diesem Ordner, aber Fenster erlauben keine Änderung! – Ata

+0

Hmmm, ich habe gerade meine Berechtigungen für C: \ ProgramData überprüft und es ist nur lesbar ... Hmmm –

+0

Nein, ich habe CommonApplicationData verwendet, wo kann ich meine Dateien speichern, so dass ich keine Admin-Berechtigung benötige. – Ata

0

Es ist eine Sicherheitsoption in Windows 7 standardmäßig aktiviert, nämlich UAC (Benutzerkontensteuerung). Sie sollten Ihr Design ändern (woanders schreiben) oder UAC über Systemsteuerung \ Benutzerkonten deaktivieren.

+0

"Sie sollten Ihr Design ändern (schreiben Sie woanders)" .. Aber wo? – DefenestrationDay

0

Ich habe das gleiche Problem, aber mit dem Inno Setup Installer, habe ich einen Parameter namens "Berechtigungen", wo ich den Wert "users-full", um eine Datei in meinem Anwendungsordner in den allgemeinen Anwendungsdaten zu erstellen mit voller Kontrolle für alle Benutzer dieser Datei.

Verwandte Themen