2017-07-14 3 views
0

C# Frage hier. Ich bekomme immer Zugriff verweigert, wenn ich versuche, eine XML-Datei zu verschieben. Ich weiß, das Problem ist, dass es eine temporäre XML-Datei mit keinen Admin-Rechten erstellt, die es braucht, und ich habe versucht, das appmanifest mit der require admin = true-Zeile ohne Erfolg zu bearbeiten. Ich habe auch versucht, die Berechtigungen außerhalb des Programms festzulegen und Visual Studio als Administrator auszuführen.C# Zugriff beim Kopieren und XML-Datei verweigert

Link to the pastebin code. 
https://pastebin.com/M7dRTXHY 

enter image description here

Ich habe tatsächlich eine Antwort für diese gestern völlig anderen Code verwenden, aber mein Lehrer sagte ich es auf diese Weise tun müssen. Ich habe Stunden damit verbracht, das zu debuggen und verliere meinen Verstand.

Es ist auch eine Windows 10-Telefon-Anwendung, nicht sicher, ob das etwas ändert.

Ich weiß, es gibt eine Million und eine andere ähnliche Fragen, aber ich kann nichts zur Arbeit bekommen.

Dies ist das genaue Tutorial, dem ich direkt aus meinem Kurs gefolgt bin. enter image description here

+0

Ist 'InstalledLocation' nicht ein schreibgeschützter Ordner? Sie versuchen, eine Datei zu verschieben, die versuchen würde, die Quelldatei zu löschen, aber dafür gibt es keine Berechtigung. Sehen Sie, ob Kopieren funktioniert, da dadurch Berechtigungsprobleme am Ziel beseitigt werden. – James

+0

Hey james danke für die Antwort. Ich lehne mich an Ich wurde falsch unterrichtet, aber ich habe ein Bild des Tutorials hochgeladen, könntest du einen Blick darauf werfen und sehen, ob ich irgendwo einen Fehler gemacht habe? – Rick1990

Antwort

1

Verwenden Sie die StorageFile für unterwegs/Kopieren/Löschen etc Operationen:

private async void Grid_Loading(FrameworkElement sender, object args) 
{ 
    Windows.ApplicationModel.Package package = Windows.ApplicationModel.Package.Current; 
    StorageFolder installedLocation = package.InstalledLocation; 
    StorageFolder targetLocation = ApplicationData.Current.LocalFolder; 

    var targetFile = await installedLocation.GetFileAsync("Contacts.xml"); 
    await targetFile.MoveAsync(targetLocation); 
    TARGETFILEPATH = ApplicationData.Current.LocalFolder.Path.ToString() + "\\Contacts.xml"; 
    loadContacts(); 
} 

mehr auf StorageFiles here.

+0

Hey Kumpel danke für die Antwort. So wurde mir bei meinem Kurs gezeigt, wie es geht. Sagst du, das ist falsch. http://imgur.com/a/5BFzB Ich würde mich nicht wundern, wenn der Kurs falsch war. Ich möchte nur sicherstellen, dass es nicht mein Fehler ist. – Rick1990

+1

Ja, es ist falsch. Es funktioniert nicht für Win Phone/uwp. –

+0

Ok danke für den Kommentar. Heißt das auch, dass der loadContacts() hier https://pastebin.com/YUigWa46 auch falsch ist. Offensichtlich muss ich herausfinden, was ich den TARGETFILEPATH auch ändern muss, da es nicht mehr existiert, aber ist dieser Weg weg? – Rick1990

Verwandte Themen