2016-05-27 22 views
0

Die Frage ist wirklich klar.Windows: Welche Ordner bieten immer Schreibrechte?

Welche (Windows-) Ordner haben immer Schreibrechte?

Also muss ich einen Ordner finden, der immer Schreibrechte auf jedem System für jede Anwendung hat.

Momentan habe ich% AppData% verwendet, aber ich habe Benachrichtigungen von einigen Benutzern bekommen, dass der Pfad keine Schreibrechte hatte (besonders auf öffentlichen Computern).

Antwort

1

Welche Ordner beschreibbar sind, hängt nicht nur vom Betriebssystem ab, sondern auch vom Sicherheits-/Schutzsystem, das auf diesem Computer installiert ist. Einige Antivirensoftware oder Systemadministratoren können sehr eingeschränkte Datenzugriffsrichtlinien auf Computern installieren/erstellen. Für einen öffentlichen Computer ist der Ordner% TEMP% wahrscheinlich der einzige allgemeine schreibbare Ordner. Ohne den Zugriff auf Temp zu schreiben, werden viele Anwendungen überhaupt nicht ausgeführt. Natürlich können Sie nicht erwarten, dass Daten dauerhaft unter dem Ordner "temp" gespeichert werden.

Der zweite hoffnungsvolle Ort ist der lokale Datenordner des Benutzers, normalerweise AppData/Local, wenn Sie keine Roaming-Daten berücksichtigen müssen. Auch hier kommt es darauf an, welche Art von Zugriffsbeschränkung für diesen Computer gilt.

Siehe diesen Link über Windows appdata Ordner.

https://msdn.microsoft.com/en-us/windows/uwp/app-settings/store-and-retrieve-app-data

+0

Ich muss Daten dauerhaft speichern. Ich bin mir des Problems bewusst, dass ein öffentlicher Computer so eingeschränkt werden kann, dass ich keine Daten dauerhaft speichern kann, aber ich suche nach einem Ort, der höchstwahrscheinlich Schreibrechte bietet. % AppData% wird in AppData/Roaming aufgelöst. Sie sollten also zu AppData/Local wechseln. Ich denke nicht, dass Windows-API der richtige Weg ist. Externe Apps/Bibliotheken (manchmal der Benutzer) müssen in der Lage sein, auf die Dateien zuzugreifen. – progmem

+0

Ich meine nicht, dass Sie Windows-API verwenden sollten. Es ist eine Referenz, wie Windows seine Ordnerverwendung definiert. % appdata% wird in AppData/Roaming aufgelöst,% localappdata% wird in AppData/Local aufgelöst. Im Hinblick auf die Erlaubniskontrolle denke ich nicht, dass es einen Unterschied gibt. Es hängt wirklich davon ab, ob Sie Daten lokal speichern möchten oder nicht. Wenn Ihre Anwendung einige Daten speichern muss, um sie erfolgreich auszuführen, können Sie eine Liste der Standorte versuchen. Sprich% AppData% zuerst, dann% LocalAppData%, zuletzt% TEMP%, was dem Benutzer eine Warnmeldung geben könnte, dass Daten vom System gelöscht werden könnten. –

+0

Guter Punkt. Ich habe tatsächlich schon an eine ähnliche Lösung gedacht. – progmem

0

Windows bietet die Roaming-Ordner Anwendungsdaten und die lokalen Ordner Anwendungsdaten speziell für den Einsatz von Anwendungen. Wenn der Systemadministrator diese gesperrt hat, bedeutet dies wahrscheinlich, dass die Benutzer keine Anwendungen von Drittanbietern ausführen sollen. (Die einzige andere offensichtliche Möglichkeit ist, dass der Systemadministrator inkompetent ist.)

Andere Möglichkeiten sind der Ordner Dokumente ... im Grunde wird erwartet, dass jeder der Benutzerordner unter normalen Umständen beschreibbar ist. Natürlich kann der Systemverwalter eines dieser nicht überschreibbar machen. Aber das sollte nicht dein Problem sein.

Beachten Sie, dass Sie die SHGetKnownFolderPath-Funktion oder eine Entsprechung verwenden sollten, um den Ordnerpfad zu ermitteln und keine Umgebungsvariable zu lesen. Sie haben Ihre Sprache nicht angegeben, aber es gibt viele bereits beantwortete Fragen darüber, wie dies zu tun ist.

Außerdem sollten Sie Dateien nicht direkt in die Anwendungsdatenordner schreiben; Erstellen Sie stattdessen einen Unterordner und legen Sie die Dateien dort ab.

Verwandte Themen