Inhaltsverzeichnis
Einführung
Methode
Algorithmus
Beispiel
Ausgabe
Zeitliche Komplexität
Fazit
Heim Backend-Entwicklung C#.Net-Tutorial Das C#-Programm schätzt die Ordnergröße

Das C#-Programm schätzt die Ordnergröße

Sep 07, 2023 am 10:33 AM

C# 程序估计文件夹的大小

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 5Wir 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]}";
}
Nach dem Login kopieren

Ausgabe

Total folder size in bytes:850757
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist die Rolle von CHAR in C -Saiten? Was ist die Rolle von CHAR in C -Saiten? Apr 03, 2025 pm 03:15 PM

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.

Wie man verschiedene Symbole in der C -Sprache verwendet Wie man verschiedene Symbole in der C -Sprache verwendet Apr 03, 2025 pm 04:48 PM

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 asynchronem C# Der Unterschied zwischen Multithreading und asynchronem C# Apr 03, 2025 pm 02:57 PM

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.

Wie man mit Sonderfiguren in der C -Sprache umgeht Wie man mit Sonderfiguren in der C -Sprache umgeht Apr 03, 2025 pm 03:18 PM

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.

So verwenden Sie char Array in C -Sprache So verwenden Sie char Array in C -Sprache Apr 03, 2025 pm 03:24 PM

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 ().

Wie man CHO in C -Sprache umwandelt Wie man CHO in C -Sprache umwandelt Apr 03, 2025 pm 03:21 PM

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.

Der Unterschied zwischen char und wchar_t in der C -Sprache Der Unterschied zwischen char und wchar_t in der C -Sprache Apr 03, 2025 pm 03:09 PM

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.

Was ist die Funktion der C -Sprachsumme? Was ist die Funktion der C -Sprachsumme? Apr 03, 2025 pm 02:21 PM

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.

See all articles