Das C#-Programm schätzt die Ordnergröße
Einführung
In diesem Artikel lernen wir das C#-Programm zum Schätzen der Ordnergröße kennen. Auf unseren Computern speichern wir Dateien in Verzeichnissen, die Ordner genannt werden. Wir werden auch sehen, wie wir die Größe der in den Dateien vorhandenen Ordner abschätzen können. Die bloße Berechnung der Dateigröße reicht nicht aus, um unsere Ziele zu erreichen. Stattdessen müssen wir auch die Größe von Ordnern und Unterordnern berechnen.
Der folgende Artikel erklärt in drei Teilen, wie man die Ordnergröße berechnet. Der erste Teil, den wir kennen müssen, ist die GetFolderSize-Methode, die uns die Größe des Ordners angibt. Der zweite Teil ist die FormatBytes-Methode, die die Größe in ein für Menschen lesbares Format umwandelt. Wir werden auch kurz auf verschiedene Ansätze eingehen, die für die weitere Entwicklung dieses Artikels von entscheidender Bedeutung sein werden.
Methode
Wir lernen fünf Methoden kennen, die wir im Code verwenden, um die Größe eines Ordners zu berechnen.
DirectoryInfo(dir_path) – Diese Methode verwendet einen Verzeichnispfad als Eingabeparameter und gibt seine Informationen zurück, z. B. Informationen zu seinen Dateien, Unterordnern und Unterverzeichnissen.
GetFiles() − Gibt die Namen aller Dateien in einem einzelnen Verzeichnis zurück.
Length− Gibt die Größe der Datei in Bytes zurück.
GetDirectories() − Diese Methode funktioniert in unserem Code am besten, da sie alle Ordner, Unterordner und Unterverzeichnisse für eine einzelne Datei zurückgibt.
Zusätzlich zu diesen Methoden, die direkt in unserem Code verwendet werden, gibt es eine weitere wichtige Methode, die die Ausgabekonsole berücksichtigt.
FormatBytes() − Die von der Längenmethode ermittelte Größe ist in Bytes angegeben und liegt nicht in einem für Menschen lesbaren Format vor. Um sie also in das richtige Zeichenfolgenformat zu konvertieren, müssen wir sie mit der FormatBytes-Methode konvertieren . Die Methode verwendet Bytes als Eingabe, wandelt sie je nach Bedarf in MB oder KB um, rundet sie dann auf zwei Dezimalstellen und wandelt sie in eine Zeichenfolge um.
Wir werden uns auch mit der Funktionsweise der DirectoryInfo-Klasse und ihrer Verwendung im Code befassen.
Es ermöglicht die Durchführung verschiedener Vorgänge an Dateien oder Verzeichnissen. Mit dieser Klasse können Dateien erstellt, verschoben und gelöscht werden. Es befindet sich unter dem System.Io-Namespace. Es bietet sogar Methoden zum Arbeiten mit Dateien.
Algorithmus
Schritt 1 −Wir müssen zunächst alle Dateien an einem Ort ablegen. Hier speichern wir alle Dateien in der Variablen „Alle Dateien“.
Schritt 2 − Jetzt gehen wir zu allen Dateien, indem wir die Schleife durchlaufen und die Länge jeder Datei mithilfe der Längenmethode berechnen.
Schritt 3 − Jetzt müssen wir sicherstellen, dass keine in der Datei vorhandenen Unterverzeichnisse, Unterordner und Ordner zurückbleiben.
Schritt 4 −Wir bewegen uns rekursiv zu jeder Datei und prüfen, ob sie Unterverzeichnisse, Unterordner oder Ordner enthält.
Schritt 5−Wir berechnen nun die Länge jeder darin enthaltenen Datei und speichern sie in der Variable „Gesamtordnergröße“.
Schritt 6 − Jetzt müssen wir sicherstellen, dass wir die Formatbyte-Methode verwenden, um die endgültige Antwort in ein für Menschen lesbares Format umzuwandeln, indem wir sie von der Bytegröße in das String-Format umwandeln.
Schritt 7 −Abschließend können wir die Konsolenfunktion verwenden, um die Antwort auszudrucken.
Beispiel
using System; using System.IO; Class Tutorials_point{ // Driver code static public void Main() { DirectoryInfo folder = new DirectoryInfo("D://d2c articles"); //Here we are getting the complete folder information. //This is a class that is used to get complete information about directories. long totalFolderSize = folderSize(folder); //here folderSize is called and we are storing the answer // in the totalFolderSize variable. long ans= FormatBytes(totalFolderSize); //here we are formatting the bytes size into a readable format by //calling the FormatBytes function. Console.WriteLine("Total folder size in bytes: " + ans); //final ans is printed. } static long folderSize(DirectoryInfo folder) { long totalSizeOfDir = 0; // Get all files into the directory FileInfo[] allFiles = folder.GetFiles(); // Loop through every file and get the size of it foreach (FileInfo file in allFiles) { totalSizeOfDir += file.Length; // we are calculating the length here. } DirectoryInfo[] subFolders = folder.GetDirectories(); //here we are finding if there are any subfolders or directories present inside a file. foreach (DirectoryInfo dir in subFolders) { totalSizeOfDir += folderSize(dir); //here we are recursively calling to check all the subfolders. } return totalSizeOfDir; // we return the total size here. } } public static string FormatBytes(long bytes) { /*This method is basically used to determine the size of the file. It determines first whether we have to complete in bytes or KB or MB or GB. If the size is between 1KB and 1MB, then we will calculate the size in KB. Similarly, if it is between MB and GB, then we will calculate it in MB.*/ string[] sizes = { "bytes", "KB", "MB", "GB", "TB" }; //here we are storing all sizes in sizes string. int order = 0; // we have initialized the order with zero so that it does not give us some garbage value in return. while (bytes >= 1024 && order < sizes.Length - 1) { order++; bytes /= 1024; } return $"{bytes:0.##} {sizes[order]}"; }
Ausgabe
Total folder size in bytes:850757
Zeitliche Komplexität
Im oben angegebenen Code sehen wir, dass die einzige Schleife, über die wir iterieren, die rekursive Schleife ist. In dieser rekursiven Schleife sehen wir, dass wir einfach iterieren, bis wir alle Unterordner, Dateien, Verzeichnisse, Unterverzeichnisse und Ordner erreicht haben. Die zeitliche Komplexität beträgt also O (Dateigröße). Abgesehen davon benötigen alle anderen Methoden nur eine konstante Zeitkomplexität. Dies stellt eine zeitliche Komplexität von O(1) in der Big-O-Notation dar. Die endgültige Zeitkomplexität ist also nur die Gesamtgröße des Ordners.
Fazit
In diesem Artikel haben wir ausführlich besprochen, wie man die Größe eines Ordners berechnet. Wir lernen die verschiedenen Methoden und Klassen kennen, die in unserem Code verwendet werden. Wir haben auch gelernt, dass wir allein durch das Zählen der Dateigrößen keine Schlussfolgerungen ziehen können. Wir müssen auch sicherstellen, dass die Größe aller Ordner, Verzeichnisse, Unterverzeichnisse und Unterordner berechnet wird. Wir haben uns auch den Algorithmus des Codes, den Code selbst und die zeitliche Komplexität angesehen. Wir hoffen, dass dieser Artikel Ihnen dabei geholfen hat, Ihre C#-Kenntnisse zu erweitern.
Das obige ist der detaillierte Inhalt vonDas C#-Programm schätzt die Ordnergröße. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In C wird der Zeichenentyp in Saiten verwendet: 1. Speichern Sie ein einzelnes Zeichen; 2. Verwenden Sie ein Array, um eine Zeichenfolge darzustellen und mit einem Null -Terminator zu enden. 3. Durch eine Saitenbetriebsfunktion arbeiten; 4. Lesen oder geben Sie eine Zeichenfolge von der Tastatur aus.

Die Nutzungsmethoden von Symbolen in der C-Sprachabdeckung Arithmetik, Zuordnung, Bedingungen, Logik, Bitoperatoren usw. werden für grundlegende mathematische Operationen verwendet, Zuordnungsoperatoren werden zur Zuordnung und Addition verwendet, Subtraktion, Multiplikationszuordnung und Abteilungszuweisung, Zustandsbetreiber werden für Unterschiede verwendet. Logische Operationen werden verwendet. Logische Operationen werden verwendet. Logische Operationen werden verwendet. Zeiger, Markierungen am Ende der Datei und nicht numerische Werte.

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, während asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, während asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, während der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abhängt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsfähigkeit asynchron verwenden müssen.

In der C -Sprache werden Sonderzeichen durch Escape -Sequenzen verarbeitet, wie z. B.: \ n repräsentiert Linienbrüche. \ t bedeutet tab charakter. Verwenden Sie Escape -Sequenzen oder Zeichenkonstanten, um Sonderzeichen darzustellen, wie z. B. char c = '\ n'. Beachten Sie, dass der Backslash zweimal entkommen muss. Verschiedene Plattformen und Compiler haben möglicherweise unterschiedliche Fluchtsequenzen. Bitte wenden Sie sich an die Dokumentation.

Das Char -Array speichert Zeichensequenzen in der C -Sprache und wird als char Array_name [Größe] deklariert. Das Zugriffselement wird durch den Einweisoperator weitergeleitet, und das Element endet mit dem Null -Terminator '\ 0', der den Endpunkt der Zeichenfolge darstellt. Die C -Sprache bietet eine Vielzahl von String -Manipulationsfunktionen wie Strlen (), Strcpy (), Strcat () und strcmp ().

In der C -Sprache kann die char -Typ -Konvertierung direkt in einen anderen Typ konvertiert werden, wenn: Casting: Verwenden von Casting -Zeichen. Automatische Konvertierung des Typs: Wenn ein Datentyp einen anderen Werttyp berücksichtigen kann, wandelt der Compiler diese automatisch um.

In der C -Sprache ist der Hauptunterschied zwischen char und wchar_t die Zeichencodierung: char verwendet ASCII oder erweitert ASCII, wchar_t Unicode; char nimmt 1-2 Bytes auf, wchar_t nimmt 2-4 Bytes auf; char ist für englischen Text geeignet. Wchar_t ist für mehrsprachige Text geeignet. char ist weithin unterstützt, wchar_t hängt davon ab, ob der Compiler und das Betriebssystem Unicode unterstützen. char ist in der Charakterbereich begrenzt, WCHAR_T hat einen größeren Charakterbereich und spezielle Funktionen werden für arithmetische Operationen verwendet.

Es gibt keine integrierte Summenfunktion in der C-Sprache, daher muss sie selbst geschrieben werden. Die Summe kann erreicht werden, indem das Array durchquert und Elemente akkumulieren: Schleifenversion: Die Summe wird für die Schleifen- und Arraylänge berechnet. Zeigerversion: Verwenden Sie Zeiger, um auf Array-Elemente zu verweisen, und eine effiziente Summierung wird durch Selbststillstandszeiger erzielt. Dynamisch Array -Array -Version zuweisen: Zuordnen Sie Arrays dynamisch und verwalten Sie selbst den Speicher selbst, um sicherzustellen, dass der zugewiesene Speicher befreit wird, um Speicherlecks zu verhindern.
