Wyświetlanie wszystkich plików na moim komputerze i sortowanie według rozmiaru

Niedawno natknąłem się na problem, że mój dysk twardy staje się nieprzyjemnie pełny, ale po przejrzeniu moich osobistych plików i usunięciu / przeniesieniu wszystkich ponadgabarytowych plików wideo wciąż mam dość niewielką ilość pamięci ROM. Umieściłem więc mózg programisty i zdecydowałem, że zamiast drobiazgowego przechodzenia przez każdy folder i sam podfolder i korzystania z funkcji kliknięcia prawym przyciskiem myszy + Właściwości systemu Windows, aby zobaczyć, jak duży jest plik i czy warto go przechowywać, mogę napisz prosty kod, który wyszuka każdy plik na moim komputerze, wyrzuci go na listę pod pełną nazwą ścieżki i umieści jego rozmiar tuż obok, a następnie posortuj go od największego do najmniejszego według rozmiaru pliku. Więc wskoczyłem do internetu, zacząłem robić badania i to wszystko, gdy wszystko uderzyło dla mnie. Znalazłem wiele fragmentów kodu, które działają dla ich wyznaczonego zadania, ale ilekroć próbuję je wykorzystać, natrafiam na mnóstwo błędów kompilacji. Jednak najbardziej obiecującą rzeczą, jaką do tej pory znalazłem, jest:

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);

Niestety nie dotyka to żadnego podkatalogu. Sprawdziłem, jak pobrać pliki z podkatalogów, ale próba zintegrowania tych fragmentów kodu z tym okazała się bardziej kłopotliwa, niż mogłem sobie wyobrazić. W rzadkich przypadkach, gdy światło było widoczne na końcu tunelu, mój program dotknąłby katalogu, który był najwyraźniej chroniony przez uprzywilejowanego Administratora (jestem jedynym użytkownikiem, a zatem Administratorem mojego komputera) i rzucił błędy jak szympans w zoo wyrzuca odchody.

Tak więc, ogólnie rzecz biorąc, szukam pomocy w: -Programie, który przeszukuje każdy plik na moim komputerze (zakładam, że zaczynając od dysku „C: /”, gdzie mogę uzyskać dostęp do wszystkiego) -Wszukuje każdy plik, jego rozmiar , i ścieżkę do tego pliku i wyrzuca go na listę / tablicę / cokolwiek -Sortuje go według rozmiaru pliku od największego do najmniejszego - Umieszcza tę listę w pliku .txt

Ostatnia część, której właściwie nie potrzebuję, ponieważ jestem zaznajomiony z klasą Streamwriter. Mogę nawet przebić się przez sortowanie według rozmiaru pliku za pomocą quasi-prostego algorytmu parsowania, który mogę wykonać w locie, jeśli moja lista / tablica / etc plików / ścieżek / rozmiarów jest zgodna z tymi samymi wzorcami i może zostać przekonwertowana na łańcuchy. Tak więc około 90,23% moich problemów to po prostu pobieranie wszystkich plików, dostanie się do lub ignorowanie - i kontynuowanie chronionych folderów Admin (myślę, że ignorowanie ich byłoby najlepsze, ponieważ bardzo wątpię, aby cokolwiek w chronionym folderze kiedykolwiek zostało usunięte.). Pobieranie ścieżek i rozmiarów wszystkich tych plików oraz ich porządkowanie.

questionAnswers(3)

yourAnswerToTheQuestion