Nazwy plików i ścieżki - wartości testowe

Nazwy, które system plików odrzuca, zmienia albo czyta inaczej, niż chciał użytkownik. 12 wartości, każda z tym, co psuje, i z tym, co zamiast tego robi poprawna aplikacja.

filenames-paths wersja 1.0, aktualizacja 2026-09-24 CC-BY-4.0

Wpisuj je po jednej skrótem AltShiftN w palecie albo weź wszystkie do skryptu poleceniem nkb emit filenames-paths.

Zarezerwowana nazwa urządzenia

filenames-paths/reserved-con
CON CON
  • 3 grafemy
  • 3 punkty kodowe
  • 3 bajty
  • 3 jednostki UTF-16
Co psuje
Nazwa urządzenia zarezerwowana przez jeden z systemów operacyjnych. Pliku o tej nazwie nie da się utworzyć, a błąd często wychodzi jako ogólny komunikat.
Co robi poprawna aplikacja
Odrzucona przy wprowadzaniu z komunikatem, który nazywa zarezerwowane słowo, a nie dopiero przy zapisie.

Kropka na końcu

filenames-paths/trailing-dot
report. report.
  • 7 grafemów
  • 7 punktów kodowych
  • 7 bajtów
  • 7 jednostek UTF-16
Co psuje
Niektóre systemy plików po cichu usuwają kropki na końcu, więc zapisana nazwa różni się od żądanej.
Co robi poprawna aplikacja
Odrzucona albo znormalizowana w widoczny sposób, żeby użytkownik zobaczył nazwę, która zostanie użyta.

Spacja na końcu nazwy pliku

filenames-paths/trailing-space-name
report report\u0020
  • kończy się spacją
  • 7 grafemów
  • 7 punktów kodowych
  • 7 bajtów
  • 7 jednostek UTF-16
Co psuje
Spacja na końcu nazwy pliku jest niewidoczna, raz usuwana, raz zachowywana - dwa pliki, które wyglądają identycznie.
Co robi poprawna aplikacja
Przycinana konsekwentnie, a wynikowa nazwa pokazana użytkownikowi.

Znaki zabronione w nazwach plików

filenames-paths/illegal-chars
a:b*c?d"e<f>g|h a:b*c?d"e<f>g|h
  • 15 grafemów
  • 15 punktów kodowych
  • 15 bajtów
  • 15 jednostek UTF-16
Co psuje
Znaki dozwolone w jednym systemie i zabronione w innym. Pliku utworzonego na jednym komputerze nie da się skopiować na inny.
Co robi poprawna aplikacja
Odrzucone z nazwaniem zabronionych znaków, zanim plik powstanie.

Podwójne rozszerzenie

filenames-paths/double-extension
report.txt.exe report.txt.exe
  • 14 grafemów
  • 14 punktów kodowych
  • 14 bajtów
  • 14 jednostek UTF-16
Co psuje
Interfejsy, które ukrywają znane rozszerzenia, pokazują to jako report.txt, więc użytkownik widzi dokument, a dostaje program.
Co robi poprawna aplikacja
Pełna nazwa pokazana wszędzie tam, gdzie użytkownik podejmuje decyzję o pliku.

Wymuszenie kierunku od prawej do lewej w nazwie pliku

filenames-paths/rtl-extension
reporttxt.exe report\u202Etxt.exe
  • 1 znak, który zmienia kierunek tekstu
  • 14 grafemów
  • 14 punktów kodowych
  • 16 bajtów
  • 14 jednostek UTF-16
Co psuje
Wymuszenie kierunku sprawia, że rozszerzenie czyta się od tyłu, więc program wygląda jak plik tekstowy.
Co robi poprawna aplikacja
Znaki sterujące kierunkiem usunięte albo zneutralizowane w każdym miejscu, które pokazuje nazwę pliku.

Pojedyncza kropka

filenames-paths/dot-only
. .
  • 1 grafem
  • 1 punkt kodowy
  • 1 bajt
  • 1 jednostka UTF-16
Co psuje
Pojedyncza kropka znaczy „ten katalog”. Użyta jako nazwa pliku albo zawodzi, albo robi coś niezamierzonego.
Co robi poprawna aplikacja
Odrzucona przy wprowadzaniu.

Dwie kropki

filenames-paths/dotdot
.. ..
  • 2 grafemy
  • 2 punkty kodowe
  • 2 bajty
  • 2 jednostki UTF-16
Co psuje
Dwie kropki to katalog nadrzędny - najkrótszy możliwy test wyjścia poza katalog (path traversal).
Co robi poprawna aplikacja
Odrzucone przy wprowadzaniu.

Kropka na początku

filenames-paths/leading-dot
.gitignore .gitignore
  • 10 grafemów
  • 10 punktów kodowych
  • 10 bajtów
  • 10 jednostek UTF-16
Co psuje
Kropka na początku ukrywa plik w niektórych systemach, więc przesłany plik znika z list.
Co robi poprawna aplikacja
Przyjęta, a plik widoczny na listach niezależnie od kropki na początku.

Nazwa pliku spoza ASCII

filenames-paths/unicode-filename
ćwiczenieąę.txt ćwiczenie ąę.txt
  • 16 grafemów
  • 16 punktów kodowych
  • 19 bajtów
  • 16 jednostek UTF-16
Co psuje
Nazwy spoza ASCII psują archiwa, przesyłanie i każdą warstwę, która zakłada wąskie kodowanie.
Co robi poprawna aplikacja
Zapisana, wylistowana, pobrana i zarchiwizowana z nienaruszoną nazwą.

260 znaków

filenames-paths/path-260
260 × a
  • 260 grafemów
  • 260 punktów kodowych
  • 260 bajtów
  • 260 jednostek UTF-16
Co psuje
Klasyczny limit długości ścieżki. Jego przekroczenie powoduje awarie daleko od miejsca, w którym wpisano nazwę.
Co robi poprawna aplikacja
Nazwa odrzucona z podanym limitem tam, gdzie się ją wpisuje.

Spacja w nazwie pliku

filenames-paths/space-in-name
myreport.txt my report.txt
  • 13 grafemów
  • 13 punktów kodowych
  • 13 bajtów
  • 13 jednostek UTF-16
Co psuje
Nazwy ze spacjami psują budowanie poleceń i odnośniki, które nie są ujęte w cudzysłów albo zakodowane.
Co robi poprawna aplikacja
Obsłużona wszędzie, gdzie używana jest nazwa pliku, także w odnośnikach do pobrania.