2014-12-18 11 views
6

Dies ist der Teil, der abstürzt und gibt mir diesen Fehler ist, wenn ich versuche, eine Datei an einen bestimmten Speicherort zu kopieren.Fehler: Eine nicht behandelte Ausnahme vom Typ 'System.UnauthorizedAccessException' ist in mscorlib.dll aufgetreten

string startupDirectory = "C:\\Users\\Tyler\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup"; 
File.Copy(startupDirectory, "Startup.exe"); 

Ich habe online und versucht Administratorrechte lesen und haben eine „app.manifest“ Datei erstellt:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
<requestedExecutionLevel level="highestAvailable" uiAccess="false" /> 

ich, dass in den Einstellungen bestätigt, wird die App-Manifest zu dieser Datei, aber es gibt mir immer noch den gleichen Fehler.

Ich habe auch dieses Ereignis versucht, obwohl ich nicht glaube, es würde funktionieren, weil es ein Verzeichnis keine Datei ist:

File.SetAttributes(startupDirectory, FileAttributes.Normal); 

Diese WinForms ist, und ich bin auf Windows 7, sondern auch zu Welt wollen für Windows 8+. Wie mache ich das?

Vielen Dank im Voraus!

+0

Wie ist der Name der Quelldatei? In der Variable startupDirectory hast du es erwähnt? – Avijit

+0

Ein _solved_ im Titel hilft niemandem. Wenn Sie eine Lösung neben den gegebenen Antworten gefunden haben, können Sie Ihre eigene Frage beantworten und als akzeptierte Antwort markieren. So wird auch anderen geholfen, die auf ein Problem der gleichen Art stoßen. – mbx

Antwort

2

public static void Copy(string sourceFileName, string destFileName); 

Erste Überlastung Versuchen ist Quelle 2. Überlastung Ziel i Grund denken könnte dies sein

File.Copy("Startup.exe",startupDirectory); 

Versuchen Sie, die Zugriffsberechtigungen auf „Volle Kontrolle“ für die .Net-Benutzer, von wo aus Sie lesen/speichern die Dateien.

Für Zugriff verweigert Fehler in IIS-Server für bestimmte Datei, folgen Sie bitte die

1- Goto to C:\\Users\\Tyler\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup 

2- Right click on your file -> Properties -> Pop Up of User properties appears -> click on Security tab-> click on Edit -> select Users-> tick on Allow Full Control -> Click Ok 

Diese

die Zugriff verweigert Problem lösen wird sicherlich unter Schritte

Ein UnauthorizedAccessException bedeutet eines von 3 Dinge:

  • Der Anrufer verfügt nicht über die erforderliche Berechtigung.
  • Pfad ist ein Verzeichnis.
  • Pfad eine schreibgeschützte Datei angegeben.
+0

Ich bin auf der ersten Option verwirrt ... Die zweite und dritte hat nicht funktioniert und für die vierte kann ich nicht finden, wählen Sie IIS_IUSRS – Nullone

+0

@ Tyler13579 geben volle Kontrolle für Benutzer –

+0

volle Kontrolle ist bereits überprüft und ausgegraut, so kann ich es nicht ändern – Nullone

1

Try this:

File.Copy(startupDirectory, "Startup.exe", true); 
    File.SetAttributes("Startup.exe", FileAttributes.Normal); 
+0

Es gab mir den gleichen Fehler – Nullone

3

Diese Ausnahme von einem Windows-Fehler ausgelöst wird. Es hat keinen dedizierten "das macht absolut keinen Sinn" Fehlercode, es produziert nur einen "Zugriff verweigert" Fehlercode. Welches .NET in eine UnauthorizedAccessException übersetzt.

Das "macht keinen Sinn" Problem hier ist, dass Sie versuchen, ein Verzeichnis mit einer Dateikopie-Methode zu kopieren. Verzeichnisse sind keine Dateien. Das Kopieren eines Verzeichnisses erfordert zuerst das Erstellen eines neuen Verzeichnisses und dann das Kopieren aller Dateien im Verzeichnis. .NET hat eine Methode dafür, die meisten C# -Programmierer neigen dazu zu denken, dass es der "falsche" Namespace ist. Es ist Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory().

Aber Sie müssen etwas mehr über dieses Problem nachdenken, es macht natürlich keinen Sinn, das neue Verzeichnis "startup.exe" aufzurufen.A wahrscheinlich eine spezifische Datei aus dem Startup-Verzeichnis zu kopieren, können wir nicht erraten, was es sein könnte.

1

Sie können Visual Studio mit Administratorrechten ausführen. (Angenommen, Windows7, klicken Sie mit der rechten Maustaste auf Visual Studio-Symbol im Startmenü und klicken Sie auf "Als Administrator ausführen")

Verwandte Themen