Swift Academy · Lekcja

Zarządzanie katalogami

Tworzenie, wyświetlanie zawartości i usuwanie katalogów.

Lekcja 3 z 413 kroki

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.

Bezpłatny start

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

  1. Adresy URL i ścieżki plików
  2. Odczytywanie i zapisywanie danych
  3. Zarządzanie katalogami
  4. Katalogi piaskownicy aplikacji
← Powrót do Swift Academy