Windows nadal używa ~
do skracania plików i katalogów o długich nazwach. Możesz zobaczyć „krótką” nazwę, wpisując dir /X
w wierszu polecenia.
Moje pytanie brzmi: jak cyfry są przypisane do krótkich nazw plików? Wydaje się, że nie jest alfabetyczny ani nie działa w oparciu o czas tworzenia pliku.
Na przykład:
Tworzę nowy plik tekstowy: C:\reallylongfilenameB.txt
Potem uciekam dir /X
i zobacz krótką nazwę pliku B REALLY~1.TXT
Tworzę drugi plik tekstowy: C:\reallylongfilenameA.txt
Potem uciekam dir /X
i zobacz krótką nazwę plikuA REALLY~2.TXT
Następnie cofam zegar o jeden dzień, usuń C:\reallylongfilenameA.txt
a następnie utwórz go ponownie, tworząc datę utworzenia C:\reallylongfilenameA.txt
1 dzień wcześniej C:\reallylongfilenameB.txt
.
biegnę dir /X
i C:\reallylongfilenameA.txt
krótka nazwa jest nadal REALLY~2.TXT
.
Biorąc pod uwagę ten przykład, czy istnieje jakiś sposób na skrócenie nazwy C:\reallylongfilenameA.txt
być REALLY~1.TXT
?
źródło
C:\temp
potem ruszaj sięreallylongfilenameA.txt
wrócić doC:\
przedreallylongfilenameB.txt
; pliki będąREALLY~1.TXT
i plik B będzieREALLY~2.TXT
Jak zauważył Jack w swojej odpowiedzi, krótka nazwa jest przypisywana podczas tworzenia pliku (lub zmiany nazwy lub przeniesienia). Wartość zależy zarówno od długiej nazwy pliku, jak i od tego, jakie inne nazwy już istnieją.
Dokładny algorytm przypisywania krótkich nazw jest nieudokumentowany i nie ma gwarancji, że algorytm pozostanie stały między wersjami systemu Windows lub nawet między różnymi formatami systemu pamięci masowej. Nie należy pisać kodu zależnego od konkretnego algorytmu przypisywania krótkich nazw.
Istnieją zarówno ograniczenia projektowe, jak i błędy wynikające z krótkich nazw plików. Przykładem ograniczenia projektowego jest
del *.txt
może usunąć nazwany pliksomething.txt2
ponieważ rozszerzenie krótkiej nazwy prawdopodobnie będzie.txt
, a maski źródłowe sprawdzają zarówno długie, jak i krótkie nazwy. Zobacz sekcję zatytułowaną „BŁĄD - Krótkie nazwy plików 8.3 mogą przerwać opcje / D i / S „ w Jakie są nieudokumentowane funkcje i ograniczenia polecenia FINDSTR systemu Windows? na przykład błędu wynikającego z krótkich nazw.Woluminy NTFS mogą mieć wyłączone krótkie nazwy plików (pozostaną krótkie nazwy, które istniały przed ich wyłączeniem). Wiele osób (organizacji) wyłącza krótkie nazwy w swoim systemie z powodu problemów, które mogą powodować.
Aktualizacja
Oto definitywny argument, dlaczego marnowanie czasu na ustalanie algorytmu generowania krótkich nazw plików jest stratą czasu FSUTIL pozwala określić dowolną krótką nazwę pliku, o ile nie istnieje ona już w tym folderze.
Oto odpowiednia dokumentacja pomocy FSUTIL
źródło