Jak to się dzieje, że podczas rozpakowywania pliku zip otrzymuję dwa pliki o tej samej nazwie w tej samej ścieżce?

12

Rozpakowuję plik zip (samorozpakowujący się, ale to chyba nie ma znaczenia) i dla kilku plików pojawia się okno dialogowe z pytaniem, czy chcę zastąpić plik, który został już wyodrębniony, plikiem, który właśnie ma być wydobytym. Na pierwszy rzut oka nie rozumiałem, w jaki sposób zip może zawierać ten sam plik w tym samym miejscu więcej niż raz. Następnie przejrzałem ten plik za pomocą 7zip (lub dowolnego narzędzia) i znalazłem to:

wprowadź opis zdjęcia tutaj

Różnica polega na numerze bloku. Co tu się właściwie dzieje?

Howiecamp
źródło

Odpowiedzi:

8

Tak, format pliku ZIP pozwala na wiele plików o tej samej nazwie. Pliki w ZIP nie znajdują się w katalogach, ale mają długą nazwę, która opcjonalnie zawiera ścieżkę . Pliki są dodawane do ZIP, skutecznie łącząc je od końca do końca. Jedynym miejscem, w którym synonimy powodują problem w formacie ZIP, jest katalog, w którym prawdopodobnie późniejszy plik zastępuje wcześniejszy. Ale kiedy cały plik ZIP jest rozpakowywany (a nie jest to ekstrakcja pojedynczych plików), ogólne podejście polega na zignorowaniu katalogu i po prostu wypakowaniu plików w kolejności, w jakiej pojawiają się w ZIP.

Pokazany obraz to oczywiście zawartość pliku ZIP, a nie katalog Windows.

Daniel R. Hicks
źródło
4

Tak. Pliki .zip MOGĄ zawierać dwa razy ten sam plik. Można to osiągnąć za pomocą funkcji „dodaj do archiwum” narzędzia zip. Domyślnie późniejszy plik zastępuje wszystkie poprzednie pliki podczas rozpakowywania, ponieważ jest to zwykle pożądane zachowanie.

Ponadto pliki, które różnią się tylko wielkością pliku / ścieżki, są uważane za identyczne podczas rozpakowywania do systemu plików, który nie rozróżnia wielkości liter (Windows lub Mac OS).

Chris Nava
źródło
1

Wygląda na to, że używasz systemu Windows, który uznał dwa pliki o nazwach różniących się tylko wielkością liter za taką samą nazwę pliku.

Możliwe, że twoje archiwum zostało utworzone w systemie plików z rozróżnianiem wielkości liter (tak jak większość Linuksa), a oba pliki miały różne przypadki (np. WPISY, Wpisy, wpisy).

Jeśli spojrzysz na wynik, pliki mają ten sam rozmiar, tę samą datę, ten sam CRC, więc te pliki są identyczne, możesz bezpiecznie zastąpić jeden z drugim. Możliwe, że niektórzy skopiowali go z inną skrzynką jako lokalną tymczasową kopię zapasową podczas pracy na tych plikach. Numer bloku polega na tym, że są one przechowywane w różnych lokalizacjach w pliku zip, co powinno być oczywiste.

Itai
źródło
0

Ten sam plik, to samo rozszerzenie (lub w tym przypadku brak rozszerzenia). Jak wspomniano powyżej, może to być spowodowane ręcznym dodaniem wielu plików do pliku zip, ponieważ wewnętrzna struktura pliku zip nie jest tak naprawdę folderem. Może być również spowodowany, gdy plik zip jest tworzony w systemie, w którym rozróżniana jest wielkość liter, takim jak Linux, i jest otwierany w systemie plików, który nie rozróżnia wielkości liter, np. Windows.

Pamiętaj, że w systemie Windows, jeśli przeciągniesz i upuścisz, aby wyodrębnić pliki, taka kolizja faktycznie pojawi się, aby zablokować GUI. Nie musisz jednak uciekać się do zabicia zadania i ponownego uruchomienia; jest to znany błąd w 7-Zip i możesz nadal używać klawiatury do poruszania się po opcjach (np. Zamień wszystko), nawet jeśli mysz jest zablokowana -> http://sourceforge.net/p/sevenzip/bugs/1509/

DavidMWilliams
źródło
-3

Nie możesz mieć dwóch identycznych nazw plików w tej samej ścieżce. Czy sprawdziłeś, czy Twój system ukrywa rozszerzenia? To może być możliwa różnica między nimi. Może jeden to plik kopii zapasowej.

ngen
źródło
Ten sam plik (z rozszerzeniem, które bywa puste) ta sama ścieżka. Zobacz zrzut ekranu flickr.com/photos/46007162@N03/5278220416 - pokazuje ten sam plik, ale jako dwa różne bloki. Nie jestem pewien, co to znaczy.
Howiecamp,
2
Jak podano w innym miejscu, archiwum zip MOŻE zawierać dwa razy ten sam plik.
Daniel R Hicks,