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.

Access to the path 'C:\Program Files\<Ordner_Name>' is denied.

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

habe folgendes Problem:

Ich habe einen Installer geschrieben, der mir Dateien aus dem Internet lädt, und dann in "C:\Program Files\<Ordner_Name>" Kopieren soll. Der Installer erstellt mir den Ordner nur wenn ich die daten in deeben erzeugten Ordner schreiben will steigt er mir immer mit der Fehlermeldung : Access to the path 'C:\Program Files\<Ordner_Name>' is denied, aus.

Wenn ich zb. eine andere Festplatte angebe, wird das Programm richtig installiert.

Nun meine Frage, gibt es irgendeine Möglichkeit mein Programm dazu zubewegen die Dateinen in den Ordner unter C:\Program Files\<Ordner_Name> zukopieren.

An dieser Stelle steigt er aus:

using (Stream streamLocal = new FileStream(installDir, FileMode.Create, FileAccess.ReadWrite, FileShare.None))

Zur Info, Ich kann noch nicht mal in den User bzw. in den Windows Temp ordner was schreiben.

Mein Programm startet via '<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />' als admin!

Danke

Hi,

mein erster Gedanke geht in Richtung Rechte: du bzw. der Benutzer, unter dessen Kontext der Installer ausgeführt wird, hast/hat wahrscheinlich keine.

Evtl. nennst du uns noch das Betriebssystem, unter dem du testest?

Grüße

Ich denke es wird Vista oder Windows 7 sein. Da hängt das an der Benutzerberechtigung.

Ich würde sowieso vorschlagen den Datenpfad an eine andere Stelle wie das Programm zu verlagern und dem Programm dann mitteilen, woe die Daten (Dateien) liegen.

Gruß Hans-Jörg

  • Autor

Ja ich nutze Win7 zur Entwicklung, ich gebe dem Programm ja Adminrechte via

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
, Die Benutzerkontensteuerung fragt ja auch nach ob ich das App als Admin laufen lassen will.

Ich kann auch Ordner in: "C:/Program Files" erstellen, der Admin hat dann auch die nötigen Rechte, allerdings kann ich wie gesagt keine Daten da rein schreiben.

Gruß Roland

Ja, ist ja das gleiche wie der normale Start, weil das app ja immer admin rechter anfordert.

Ja aber eshätte ja sein können das mit dem Manifest etwas nicht funktioniert.

Folgender Code bringt mir beim normalen Starten eine Access denied Exception und beim Ausführen als Admin klappts ohne Probleme


static void Main(string[] args)
{
using (Stream streamLocal = new FileStream(@"C:\Program Files\test.txt", FileMode.Create, FileAccess.ReadWrite, FileShare.None))
{
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
byte[] text = enc.GetBytes("Test");
streamLocal.Write(text, 0, text.Length);
}
}
[/PHP]

  • Autor

Was bin ich doch ein "Pfosten" :upps.

Ich habe ihn zwar gesagt wo der das Speichern soll, aber nicht was!!!

Danke Guybrush Threepworld, für deinen Quelltext, womit du mir gezeigt hast wo mein Fehler ist.

Gruß und Danke für eure Hilfe

Roland

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

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.