


Organisieren Sie Ihren Desktop: Erstellen Sie einen Datei-Organizer in Go.
Dec 05, 2024 am 03:06 AMIst Ihr Desktop chaotisch? Haben Sie Dateien aller Art, die Ihren Desktop oder Ihr Download-Verzeichnis überladen? Lassen Sie uns das mit einem einfachen Skript beheben.
Wie zu Beginn jedes Go-Projekts generieren wir unsere go.mod-Datei mit der Direktive „go mod init“. Der Einfachheit halber schreiben wir unsere gesamte Logik in unsere main.go-Datei.
Lassen Sie uns ein wenig darüber sprechen, wie sich das Skript verhalten soll, bevor wir Code schreiben. Wir möchten unsere Dateien in Verzeichnissen organisieren können, die den Dateityp oder das Erstellungsdatum angeben. Kurz gesagt, wir möchten, dass unser Skript Videodateien in ein Videoverzeichnis, Musikdateien in ein Musikverzeichnis usw. sortiert. oder sortieren Sie alle an einem bestimmten Datum erstellten Dateien in dasselbe Verzeichnis.
Jetzt programmieren wir:
Erstellen Sie eine main.go-Datei und schreiben Sie Folgendes:
1 2 3 4 5 6 7 8 9 |
|
Da wir möchten, dass unser Programm Dateien nach verschiedenen Kriterien sortiert, erstellen wir eine fileAnalyzer-Schnittstelle, die eine Methode definiert:analysAndSort.
Dann schreiben wir eine Funktion: „analysieren“ – die jede Struktur, die die fileAnalyzer-Schnittstelle implementiert, als Argument akzeptiert und ihre Methode „analysierenAndSort“ ausführt.
In einigen Fällen, wie wir sie in diesem Programm sehen werden, gibt es möglicherweise bestimmte Dateien, die Sie nicht verschieben möchten. Beim Testen des Skripts möchten wir beispielsweise nicht, dass das Programm unsere Go-Dateien oder ausführbaren Dateien/Binärdateien in ein anderes Verzeichnis verschiebt. Um dies zu verhindern, müssen wir eine Blacklist erstellen, die alle Dateien enthält, die wir unberührt lassen möchten.
Schreiben Sie Folgendes in unsere main.go-Datei:
1 2 3 4 5 6 |
|
Hier habe ich die Dateierweiterung für Dateien hinzugefügt, die unsortiert bleiben sollen. „.go“ und „.mod“ sind Erweiterungen für Go-Dateien. Da ich einen Windows-Rechner verwende, hat meine Binärdatei die Erweiterung „.exe“. Ich habe auch „.ps1“ eingefügt, weil ich in der Entwicklung gerne mit Powershell-Skripten arbeite – wie Sie sehen werden.
Als nächstes schreiben wir einige Hilfsfunktionen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
|
Die meisten davon sind selbsterklärend, aber ich möchte gerne über die Funktion „mkdir“ sprechen. Die Funktion „mkdir“ erstellt ein Verzeichnis mit dem als Argument übergebenen Namen – die Funktion gibt jedoch keinen Fehler zurück, wenn das Verzeichnis bereits existiert oder ein „os.PathError“ vorliegt.
Jetzt erstellen wir eine Struktur, die die fileAnalyzer-Schnittstelle implementiert:
1 2 3 4 5 6 7 8 9 |
|
Die fileTypeAnalyzer-Struktur verfügt über zwei Eigenschaften: wd, das den Namen des aktuellen Arbeitsverzeichnisses und einen Mapper enthält. Die Schlüssel des Mappers sind der Typ der erkannten Datei, während seine Werte eine Liste der mit dem Schlüssel verknüpften Dateierweiterungen sind. Anschließend erstellen wir eine Konstruktorfunktion und stellen dem Mapper die Dateitypen sowie deren assoziative Dateierweiterungen zur Verfügung. Sie können der Liste gerne weitere Dateitypen und Erweiterungen hinzufügen. Die Methode „anaylyzeAndSort“ ruft einige Hilfsfunktionen und -methoden auf, die die Dateierweiterung einem Dateityp zuordnen, das Dateitypverzeichnis erstellen und die Datei in dieses Verzeichnis verschieben. Ich habe auch einen „Misc“-Ordner hinzugefügt, um Dateien zu speichern, die nicht vom Mapper erfasst wurden – mit Ausnahme der Dateien auf der schwarzen Liste natürlich.
Wir möchten Dateien auch nach Erstellungsdatum organisieren können. Erstellen wir eine weitere Struktur, die die fileAnalyzer-Schnittstelle implementiert, Dateien aber nach Datum organisiert.
1 2 3 4 5 6 |
|
Ein Großteil der Logik ist mit der des fileTypeAnalyzer identisch. Der Hauptunterschied besteht darin, dass wir keinen Mapper bereitstellen – stattdessen beziehen wir das Erstellungsdatum aus den Dateiinformationen und erstellen entsprechend Verzeichnisse.
Jetzt fassen wir alles in unserer Hauptfunktion zusammen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
|
Wir konfigurieren einen Logger; Rufen Sie das aktuelle Arbeitsverzeichnis ab, um es als Argument an unsere FileAnalyzer-Implementierung zu übergeben. Erstellen Sie eine Modusvariable, um Werte zu speichern, die als Flags an die Anwendung übergeben werden, und eine Switch-Anweisung, um zu steuern, wie wir sortieren möchten. Schließlich rufen wir die Analysefunktion auf und übergeben unsere fileAnalyzer-Implementierung als Argument.
Das ist alles. Lassen Sie uns unsere Binärdatei erstellen und testen. Ich habe meinen Sortierer angerufen. Mit „go build -o [name]“
können Sie Ihres so nennen, wie Sie es möchtenHier ist ein Ordner voller Dateien unterschiedlicher Art:
Lassen Sie uns nach Dateityp organisieren:
Lassen Sie uns nach Dateierstellungsdatum organisieren:
Als Bonus, wenn Sie einen Windows-Rechner verwenden und Powershell verwenden, finden Sie hier ein Skript, das Ihnen dabei hilft, das Testen Ihres Programms zu vereinfachen.
Erstellen Sie eine task.ps1-Datei und geben Sie Folgendes ein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
|
So erstellen Sie Ihre Binärdatei mit dem Skript:
So desorganisieren Sie Dateien mit dem Skript:
Um Verzeichnisse mit einem Skript zu löschen:
Das obige ist der detaillierte Inhalt vonOrganisieren Sie Ihren Desktop: Erstellen Sie einen Datei-Organizer in Go.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

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

GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich?

Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren?

Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go?

Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen?

Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache?

Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren?

Wie schreibe ich Dateien in Go Language bequem?

Wie schreibe ich Benchmarks, die die reale Leistung in Go genau widerspiegeln?
