Auflisten aller Dateien auf meinem Computer und Sortieren nach Größe

Kürzlich bin ich auf das Problem gestoßen, dass meine Festplatte unerträglich voll wird, aber nachdem ich meine persönlichen Dateien durchgesehen und alle übergroßen Videodateien gelöscht / verschoben habe, habe ich immer noch eine relativ kleine Menge an ROM zur Verfügung. Also habe ich mein Programmiererhirn zum Laufen gebracht und beschlossen, dass ich, anstatt jeden Ordner und Unterordner selbst akribisch durchzugehen und mit der Rechtsklick-Funktion + Eigenschaften von Windows zu sehen, wie groß eine Datei ist und ob es sich lohnt, sie zu behalten Schreiben Sie einen einfachen Code, der nach jeder Datei auf meinem Computer sucht, sie mit ihrem vollständigen Pfadnamen in eine Liste wirft und ihre Dateigröße direkt danebenstellt. Sortieren Sie sie dann von der größten zur kleinsten nach der Dateigröße. Also bin ich online gegangen, habe angefangen zu recherchieren, und dann hat alles den Fan für mich getroffen. Ich habe reichlich Code-Schnipsel gefunden, die für ihre vorgesehene Aufgabe funktionieren, aber wenn ich versuche, sie selbst zu nutzen, stoße ich auf eine Vielzahl von Build-Fehlern. Das vielversprechendste, was ich bisher gefunden habe, ist:

const string dir = "C:\\";
string[] fns = Directory.GetFiles(dir);
var Sort = from fn in fns
           orderby new FileInfo(fn).Length descending
           select fn;
foreach (string n in Sort)
    Console.WriteLine(n);

Leider berührt dies kein Unterverzeichnis. Ich habe nachgeschlagen, wie man die Dateien aus Unterverzeichnissen holt, aber der Versuch, diese Code-Schnipsel in dieses zu integrieren, erwies sich als schwieriger, als ich es mir hätte vorstellen können. In den seltenen Fällen, in denen Licht am Ende des Tunnels zu sehen war, berührte mein Programm ein Verzeichnis, das anscheinend durch Administratorrechte geschützt war (ich bin der einzige Benutzer und damit Administrator meines Computers), und warf Fehler wie ein Schimpanse auf ein Zoo wirft Kot aus.

Im Großen und Ganzen suche ich Unterstützung bei: -Programm, das jede Datei auf meinem Computer durchsucht (ich gehe davon aus, dass ich ab dem Laufwerk "C: /" auf alles zugreifen kann) -Nimmt jede Datei, ihre Größe , und der Pfad zu dieser Datei und wirft sie auf eine Liste / Array / was auch immer - Sortiert sie nach Dateigröße vom größten bis zum kleinsten - Platziert diese Liste in eine TXT-Datei

Der letzte Teil, bei dem ich eigentlich keine Hilfe brauche, da ich mit der Streamwriter-Klasse ziemlich vertraut bin. Ich kann mich sogar mit einem quasi einfachen Parsing-Algorithmus, den ich im laufenden Betrieb erstellen kann, durch das Sortieren nach Dateigröße wühlen, wenn meine Liste / Array / etc von Dateien / Pfaden / Größen alle denselben Mustern entsprechen und in Zeichenfolgen konvertiert werden können. Ungefähr 90,23% meiner Probleme betreffen das Abrufen aller Dateien sowie das Ignorieren und Fortfahren von durch Administratoren geschützten Ordnern. (Ich denke, das Ignorieren dieser Ordner ist am besten, da ich sehr bezweifle, dass jemals etwas in einem geschützten Ordner gelöscht werden sollte.) Die Pfade und Größen aller dieser Dateien abrufen und sie organisieren.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage