Bazı Windows araçlarının görünüşte ters eğik çizgi kullanması nedeniyle oluşur ( \
) eğik çizgi kullanmaları gereken ayırıcılar olarak ( /
). Unix'deki ters eğik çizgi, dosya veya dizin adının bir parçası olabilir.
.ZIP Dosya Biçimi Özellikleri (sürüm: 6.3.5, bunu yazarken, 20 Kasım 2018 tarihini gözden geçirdi) belirtir:
4.4.17.1 İsteğe bağlı göreli yol ile dosyanın adı.
Saklanan yol bir sürücü içermemelidir veya
aygıt mektubu veya önde gelen eğik çizgi. Tüm eğik çizgiler
Eğik çizgiler olmalı /
aksine
geriye eğik çizgi \
Amiga ile uyumluluk için
ve UNIX dosya sistemleri vb. girdiler standart ise
giriş, dosya adı alanı yok.
Bu dosya Microsoft tarafından bir belgede belirtiliyor Azaltma: ZipArchiveEntry.FullName
Yol ayırıcı :
.NET Framework 4.6.1’i hedefleyen uygulamalarla başlayarak, ZipArchiveEntry.FullName
özellik ters eğik çizgiden değişti ( \
.NET Framework’ün önceki sürümlerinde eğik çizgi olarak kullanılır ( /
). [...]
darbe
Değişiklik, .NET uygulamasını, Bölüm 4.4.17.1’e uygun .ZIP Dosya Biçimi Özellikleri ve .ZIP arşivlerinin Windows olmayan sistemlerde sıkıştırılmasını sağlar.
.NET Framework'ün önceki Windows sürümünü, Macintosh gibi Windows işletim sistemlerinde hedefleyen bir uygulama tarafından oluşturulan zip dosyasının sıkıştırmasını açma dizin yapısını koruyamaz. Örneğin, Macintosh'ta, dosya adı dizin yolunu birleştiren ve herhangi bir ters eğik çizgiyle birleştirilmiş bir dosya kümesi oluşturur ( \
) karakterler ve dosya adı. Sonuç olarak, sıkıştırılmış dosyaların dizin yapısı korunmaz.
Arşiv, .NET Framework'ün bazı eski sürümlerini kullandıysa veya hiç kullanmamışsa, ancak zip dosyalarına kendi (bağımsız) yaklaşımını uyguladıysa sorun olabilir.
Kişi rar ile aynı sorunu yaşayabilir: Uygun dizini hiyerarşisi yerine, adlarında ters eğik çizgi bulunan dosyalar oluşturma .
Bu soruyu Unix & amp; Linux SE yardımcı: Windows tarafından oluşturulan bir ZIP’ü Linux’a dönüştürme (dahili yollar sorunu) . Benim (biraz deneysel) yaklaşımım bu cevapta .