Zarządzanie katalogami
Tworzenie, wyświetlanie zawartości i usuwanie katalogów.
Zarządzanie katalogami to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.
Zarządzanie katalogami
FileManager to główny obiekt służący do tworzenia, wyświetlania zawartości, przenoszenia i usuwania plików oraz folderów.
Współdzielony FileManager
Do większości operacji należy używać FileManager.default. Udostępnia on współdzieloną instancję bezpieczną wątkowo.
import Foundation
let fm = FileManager.default
print("Got the default file manager")Tworzenie katalogu
createDirectory(at:withIntermediateDirectories:) tworzy folder i może opcjonalnie utworzyć wszystkie brakujące katalogi nadrzędne.
import Foundation
let fm = FileManager.default
let dir = URL(fileURLWithPath: "/tmp/myapp/cache")
try? fm.createDirectory(at: dir, withIntermediateDirectories: true)
print("Directory created")Sprawdzanie istnienia
fileExists(atPath:) informuje, czy dana ścieżka istnieje, a parametr inout wskazuje, czy chodzi o katalog.
import Foundation
let fm = FileManager.default
var isDir: ObjCBool = false
let exists = fm.fileExists(atPath: "/tmp", isDirectory: &isDir)
print("Exists: \(exists), isDir: \(isDir.boolValue)")Wyświetlanie zawartości
contentsOfDirectory(at:includingPropertiesForKeys:) zwraca adresy URL znajdujące się w folderze.
import Foundation
let fm = FileManager.default
let dir = URL(fileURLWithPath: "/tmp")
if let items = try? fm.contentsOfDirectory(at: dir, includingPropertiesForKeys: nil) {
print("Item count: \(items.count)")
}Wyświetlanie samych nazw
Oparta na ścieżce metoda contentsOfDirectory(atPath:) zwraca zwykłe ciągi znaków z nazwami plików, gdy nie są potrzebne pełne adresy URL.
import Foundation
let fm = FileManager.default
if let names = try? fm.contentsOfDirectory(atPath: "/tmp") {
print("Names count: \(names.count)")
}Usuwanie elementów
removeItem(at:) usuwa plik lub całe drzewo katalogów. Należy używać jej ostrożnie.
import Foundation
let fm = FileManager.default
let url = URL(fileURLWithPath: "/tmp/myapp/cache/old.txt")
try? fm.removeItem(at: url)
print("Removed item if it existed")Przenoszenie i zmiana nazw
moveItem(at:to:) przenosi lub zmienia nazwę, a copyItem(at:to:) tworzy kopię pliku.
import Foundation
let fm = FileManager.default
let src = URL(fileURLWithPath: "/tmp/a.txt")
let dst = URL(fileURLWithPath: "/tmp/b.txt")
try? fm.moveItem(at: src, to: dst)
print("Moved if source existed")Rekurencyjne wyliczanie
Obiekt FileManager.DirectoryEnumerator rekurencyjnie przechodzi przez całe poddrzewo, zwracając każdy zagnieżdżony adres URL.
import Foundation
let fm = FileManager.default
let root = URL(fileURLWithPath: "/tmp")
if let e = fm.enumerator(at: root, includingPropertiesForKeys: nil) {
var count = 0
for case _ as URL in e { count += 1; if count > 5 { break } }
print("Walked some entries: \(count)")
}Atrybuty plików
attributesOfItem(atPath:) zwraca w słowniku metadane, takie jak rozmiar i data modyfikacji.
import Foundation
let fm = FileManager.default
if let attrs = try? fm.attributesOfItem(atPath: "/tmp"),
let size = attrs[.size] {
print("Has size attribute: \(size)")
}Obsługa błędów
Operacje na katalogach zgłaszają błędy w przypadku problemów z uprawnieniami lub braku ścieżki. Należy umieścić je w bloku do/catch, aby odpowiednio zareagować.
import Foundation
let fm = FileManager.default
do {
try fm.removeItem(at: URL(fileURLWithPath: "/no/such/file"))
} catch {
print("Remove failed: \(error.localizedDescription)")
}Szybki test
Która opcja sprawia, że createDirectory tworzy również brakujące katalogi nadrzędne?
Podsumowanie
FileManager.default tworzy foldery za pomocą createDirectory, sprawdza ich istnienie za pomocą fileExists, wyświetla zawartość za pomocą contentsOfDirectory, usuwa elementy za pomocą removeItem, a także przenosi i kopiuje elementy. Poznali Państwo również sposób wyliczania zawartości poddrzew oraz odczytywania atrybutów. Następnie: katalogi piaskownicy aplikacji.
Ucz się Swift dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 122
- Lekcje
- 409
Często zadawane pytania
Czy lekcja „Zarządzanie katalogami” jest bezpłatna?
Tak — pełny tekst „Zarządzanie katalogami” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Zarządzanie katalogami”?
Tworzenie, wyświetlanie zawartości i usuwanie katalogów. Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Swift Academy?
Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Zarządzanie katalogami”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?
Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Adresy URL i ścieżki plików
- Odczytywanie i zapisywanie danych
- Zarządzanie katalogami
- Katalogi piaskownicy aplikacji