TLDR : Bei mir hatte es etwas mit AVAST zu tun! => Ihre Anwendung auf die Whitelist setzen .
Plötzlich bekam ich auch dies UnauthorizedAccessException Problem in dem Windows-WPF-Programm, das ich schreibe. Keine der Lösungen funktionierte - außer, dass ich nicht herausfinden konnte, wie ich meine Anwendung auf volle Berechtigungen erweitern kann (nicht mit VS), während ich gleichzeitig, da ich bereits auf dem Administratorkonto bin, nicht das Gefühl hatte, dass ich mich so tief in Berechtigungsfragen einarbeiten muss.
Bei den Dateien handelt es sich um Bilddateien (jpg, psd, webp usw.) Ich habe nicht versucht, ein Verzeichnis zu öffnen/zu schreiben, sondern es war immer ein gültiger Pfad zu einer Datei, und ich musste in die Datei schreiben, FileAccess.ReadWrite
war Unvermeidlich . Die Dateien (und jedes ihrer übergeordneten Verzeichnisse) wurden nicht schreibgeschützt (Ich habe sogar den Code vor dem Aufruf von new FileStream(path, mode, access, share)
über FileInfo.IsReadOnly
) - was ist also plötzlich passiert?
Nachdenken über : Ich hatte einen Festplattenabsturz, also habe ich ein Backup meines Lösungscodes von einer anderen Festplatte entpackt. In der Zwischenzeit fügte ich Codes in meiner Anwendung hinzu, um PInvoke-APIs zum direkten Lesen von Festplattensektoren physischen Bytes sowie USB-Stecker/-Stecker-Überwachung.
Ich begann die Ausnahme zu bekommen, als ich diese aber obwohl ich die entsprechenden Codes vorübergehend aus der Anwendung entfernt habe, Ich habe immer noch die UnauthorizedAccessException .
Dann erinnerte ich mich an eine Sache, die ich vor langer Zeit gemacht habe, ein mühsames, ähnliches Problem, bei dem ich wollte, dass meine Anwendung sensible Daten über Wifi kommuniziert, und das war zu die ausführbare Datei zu den Ausnahmen von AVAST hinzufügen und auch das Assembly-Verzeichnis (meine Anwendung war bereits unter den durch die Firewall autorisierten Anwendungen)
Ich habe es gerade für meine Anwendung in den AVAST-Einstellungen gemacht, und die Ausnahme ist verschwunden !!! Zwei Tage lang lauere ich auf StackOverflow und im Web, um endlich voranzukommen, ENDLICH!
Details : Ich kann nicht genau sagen, was AVAST an meiner Anwendung nicht mochte, da die einzigen Änderungen, die ich vorgenommen habe, :
- Abgerufen dann startete die Backup-Code - es funktionierte wie ein Charme, Dateien (Bilder) öffnet / schreiben ohne Probleme (vor 3 Tagen)
- USB-Erkennung hinzugefügt (vor 3 Tagen - Habe den Code gerade getestet, habe noch nicht versucht, ein Image zu öffnen)
- PInvoke physical drive direct read hinzugefügt (vor 2 Tagen - FileStream, und die Logik, um zu definieren, wo/wie das beschädigte Laufwerk gescannt werden soll - Habe den Code gerade getestet, habe nicht versucht, ein Image zu öffnen)
- Erkennung von Bildformaten ab Jpg/Jfif hinzugefügt vor 2 Tagen, hat die Ausnahme beim Testen des Codes.
- Während der Suche nach Lösungen, fügte eine Image Gallery WPF UserControl zu diplay Bilder auf der Grundlage ihrer Signatur und prüfen, welche Dateien gibt die Ausnahme: fast alle von ihnen (einige Dateien öffnen / schreiben okay - warum ???)
- Habe alles ausprobiert, was ich auf SO gefunden habe (seit den letzten 2 Tagen), bis ich AVAST-Einstellungen geöffnet und meine Anwendung auf die Whitelist gesetzt .
- ... jetzt kann ich eine Reihe von Dateisignaturen hinzufügen, um so viele Daten wie möglich zu erhalten.
Wenn dies denjenigen helfen kann, die wie ich nicht an der " Ich übergebe einen Verzeichnispfad anstelle einer Datei ", haben aber keine Zeit, genau zu lernen, warum Antivirenprogramme unseren eigenen Code für Malware halten.