Zgodnie z moim rozumieniem systemu plików Windows program może odczytać plik zgodnie z jego ścieżką, jeśli ta ścieżka zostanie zmieniona, to żaden program użyty do odczytu tego pliku nie będzie mógł tego zrobić. Oznaczałoby to, że dla wszystkich programów w systemie Windows, które zależą od pliku, konsekwencje usunięcia i zmiany nazwy pliku muszą być takie same.
Konkretnym przypadkiem, od którego zależy ta odpowiedź, jest system osadzony działający w systemie Windows 2000, instrukcja usługodawcy prowadzi użytkownika do usunięcia plików w folderze. Jako ostrożny użytkownik po prostu skopiowałem pliki do ścieżki o nazwie „folder_backup” i zostawiłem folder pusty.
Podczas tej operacji system zresetował się i nie mógł poprawnie funkcjonować. Tak więc wezwano usługodawcę, który napisał instrukcję. Ich diagnozą było uszkodzenie bazy danych, ponieważ równolegle istniały 2 bazy danych, wskazując na „folder_backup” jako drugą bazę danych. O ile mi wiadomo, pliki wewnątrz „D: / folder_backup” byłyby obojętne, wykluczając wyjątkowy przypadek programu, który szuka folderów zaczynających się od „folderu” lub odczytuje całą zawartość pliku „D: /”.
W jaki nieoczywisty sposób system może uzyskać dostęp do pliku o zmienionej nazwie, co w innym przypadku byłoby niemożliwe, gdyby plik został usunięty?
źródło
Odpowiedzi:
Naprawdę zepsute do wyboru.
Rozproszone śledzenie linków.
Twarde linki.
OpenFileById.
Numery rekordów MFT.
... i prawdopodobnie więcej. To, czy zastosowanie którejkolwiek z tych aplikacji jest rozsądne, jest innym pytaniem, ale z pewnością jest możliwe .
źródło
Do innego pliku można uzyskać dostęp do pliku o zmienionej nazwie.
Jednym ze sposobów, w jaki inny program może uzyskać dostęp do pliku o zmienionej nazwie, jest zmienna środowiskowa, która jest ustawiona na nową ścieżkę pliku przez ten sam program, który zmienił nazwę pliku. Program, który chce uzyskać dostęp do tego pliku, używa zmiennej środowiskowej dla ścieżki pliku zamiast ustalonej wewnętrznie ścieżki pliku.
Innym sposobem jest to, aby plik był jedynym plikiem w określonym folderze. Program, który chce użyć tego pliku, wie, że nigdy nie powinien znajdować się więcej niż jeden plik w tym konkretnym folderze, ale wie, że nazwa pliku może się zmienić, ale katalog, w którym należy, nie zmieni się. Program po prostu używa pierwszego pliku, jaki może znaleźć w tym folderze, którym zawsze powinien być ten plik. Nie jest to jednak dobra praktyka i lepiej jest mieć zmienną środowiskową.
W przeciwnym razie niektóre programy automatycznie proszą użytkownika o zlokalizowanie pliku przed kontynuowaniem wykonywania jego kodu
źródło