Czy można bezpiecznie założyć, że w lokalnych i sieciowych ścieżkach plików NIE jest rozróżniana wielkość liter?Ścieżki plików w środowisku Windows nie są rozróżniane małe i wielkie litery?
Odpowiedz
Tak. Systemy plików Windows (lokalne), w tym NTFS, a także FAT i warianty, są rozróżniane wielkości liter (zwykle). Podstawowa implementacja sieciowego systemu plików może być rozróżniana z uwzględnieniem wielkości liter, jednak większość oprogramowania, które pozwala systemowi Windows na dostęp do niego (na przykład SMB), automatycznie rozróżnia wielkość liter w systemach plików, tak jak w przypadku systemu Windows.
Aby uzyskać szczegółowe informacje, zapoznaj się z sekcją w sekcji Wikipedia article on filenames.
Rozróżnianie wielkości liter w systemie Windows jest faktycznie realizowane w sposobie otwierania plików przez aplikację. System NTFS może być systemem plików wrażliwym na wielkość liter i może z powodzeniem przechowywać pliki o identycznych nazwach różniących się tylko wielkością liter w tym samym katalogu.
W systemie Windows wszystkie pliki są ostatecznie otwierane za pośrednictwem interfejsu API CreateFile. - Jeśli flaga FILE_FLAG_POSIX_SEMANTICS
zostanie przekazana do połączenia (a system plików, do którego uzyskiwany jest dostęp, jest rozróżniana wielkości liter), plik zostanie otwarty na podstawie dokładnej nazwy pasującej do nazwy . Jeśli nie zostanie przekazany FILE_FLAG_POSIX_SEMANTICS
, system plików otworzy plik bez rozróżniania wielkości liter i otworzy jeden z plików o pasującej nazwie. Jeśli jest więcej niż jeden, nie jest zdefiniowany, który z nich jest faktycznie otwarty.
Większość wdrożeń środowiska wykonawczego C i C++ w systemie Windows nie zapewnia żadnego dostępu do tego mechanizmu i nigdy nie używa tej flagi, więc jedynym sposobem uzyskania dostępu do rozróżniania wielkości liter jest bezpośrednie użycie interfejsu API systemu Windows.
tl; dr - Twoje środowisko uruchomieniowe prawdopodobnie naraża twój system plików na wielkość liter lub zachowanie skrzynek. Możesz, jeśli korzystasz bezpośrednio z interfejsu API systemu Windows, uzyskać dostęp do obsługiwanych systemów plików w pełni sprawnie senstive.
- 1. Czy w MySQL występują UNIKALNE indeksy rozróżniane są małe i wielkie litery?
- 2. PHP: Konwertuj wielkie litery na wielkie litery na małe litery
- 3. Wielkie litery mvc Model vs małe litery
- 4. Co to są wielkie i małe litery nazwy metody ruby?
- 5. Sprawdź, czy ciąg mają wielkie litery, małe litery i numer
- 6. Jak przekonwertować wielkie litery na małe litery w Notatniku ++
- 7. jQuery: contains() selektor wielkie i małe litery problem
- 8. Jak przekonwertować ciąg na wielkie/małe litery w Jinja2?
- 9. Małe litery Web API Małe litery
- 10. Ustaw wielkie litery dla TextView
- 11. Mecz i małe litery regexp
- 12. Skrót klawiaturowy do konwersji zaznaczenia na wielkie litery (lub małe litery) w edytorze atomów.
- 13. Podświetlanie składni dla niestandardowego typu pliku w geanie ze słowami kluczowymi zawierającymi wielkie litery, małe litery i podkreślenie
- 14. zmienić małe nazw plików na wielkie litery z awk, sed lub bash
- 15. Konwersja wszystkie wielkie litery init czapki
- 16. python 2.7 małe litery
- 17. Jak podzielić ciąg znaków na wielkie i małe litery w JavaScript?
- 18. jQuery.attr() gwarantuje małe litery?
- 19. .ToTitleCase nie działa na wszystkie wielkie litery
- 20. Jak zmienić SQL Server 2005, aby rozróżniać małe i wielkie litery?
- 21. Dlaczego tf.Variable uppercase i tf.constant małe litery?
- 22. Rozbija łańcuch na wielkie litery?
- 23. Pojedyncze wyrażenie regularne, które zmienia wielkość litery na małe litery na małe litery
- 24. Groovy/Grails zawiera małe litery
- 25. Przekształcanie części łańcucha w wielkie litery w CMake
- 26. Jak zmienić nazwę wszystkich plików na małe litery?
- 27. Nazwa dyrektywy kątowej: dozwolone są tylko małe litery?
- 28. Jakie są opcje, aby \ mathcal działało na małe litery?
- 29. zmiana nazwy tabeli na wielkie litery
- 30. Jak wykrywać małe litery w Pythonie?
Zdefiniuj "bezpieczny". System NTFS _can_ może być skonfigurowany z nazwami plików z rozróżnianiem wielkości liter, ale mało kto to robi (a ci, którzy to robią, są zazwyczaj gotowi wziąć odpowiedzialność za łamanie programów). Ale dlaczego musisz to wiedzieć? –
@Ken, nie ma nic śmierdzącego o 51%. Mnóstwo pytań - często najciekawszych - po prostu nie ma rozsądnych odpowiedzi. 51% pokazuje, że nie jest to użytkownik, który nie wie, do czego służy opisany znacznik; niezależnie od innych jego wad, wyraźnie podejmuje rozsądne decyzje dotyczące tego, co zaakceptować. –
@Henning, nie zgadzam się. Jeśli zadasz 100 pytań, a na 50 z nich nikt nie odpowie, albo zadajesz wiele złych pytań, zadajesz pytania nie na temat, albo nie podążasz za nimi po rozwiązaniu samemu i odpowiadając na własne pytanie, aby przynosić korzyści innym. Ale oczywiście masz prawo do własnej opinii. :) –