Dosya adları çok uzun ve Windows dosyaları açamıyor


12

Bir ağ sürücüsünde, oldukça derin bir yolda bir sürü dosya var ve çoğunun dizinlerinin uzun adları var. Bunların başlangıçta birisi bu dosya grubu için kök dizini yerel iş istasyonundan paylaşılan ağ sürücüsüne kopyalayıp yapıştırdığında oluşturulduğunu düşünüyorum. Yerel iş istasyonunda dosyayı açarken bir sorun olmadığını hayal ediyorum, ancak şimdi ağ üzerinde daha uzun bir yolda olduklarına göre, çift tıkladığımda Windows bunları açamıyor. Ayrıca dosyaları kopyalamayı ve onları daha kısa bir şekilde yeniden adlandırmayı denedim, ancak Windows da bunu yapamıyor.

TL; DR

birinin iş istasyonundaki (varsayımsal) bir yoldaki dosyalar şöyle:

C:\Documents and Settings\SomeUser\Files\RootOfLongFileNames\LongSubdirectoryName1\...\VeryLongAndDescriptiveAndSpecificFilename.xls
-----------------------------------------^

kopyalandı ve ağa şu şekilde yapıştırıldı:

Q:\Dir1\Dir2\ProjectA\FilesForSomething\SomeotherDirectory\Blahblah\RootOfLongFileNames\LongSubdirectoryName1\...\VeryLongAndDescriptiveAndSpecificFilename.xls
---------------------------------------------------------------------^

Ve yol artık Windows XP'nin işleyemeyeceği kadar uzun.

Bu dosyaları nasıl okuyabileceğime dair ipuçları var mı?



@bZezzz: Dosya dosya bazında çalışacak gibi görünüyor, ancak hepsini bir kerede erişilebilir kılmak için bazı şeyler arıyorum. Yerel iş istasyonlarına kopyalama işlemi iyi olur ancak uzun dosya adlarının korunması gerekir (dosya içeriği için çok özel bir bağlam sağlarlar). Ayrıca, buradaki birçok kullanıcı dosyaları komut satırından açmaya başlayacak kadar teknik değildir. Önerin ben ve bir kişi için işe yarayabilir.
SinirliWithFormsDesigner

Yanıtlar:


7

Yolu SUBST.EXE ile değiştirmeyi deneyin. Windows ile birlikte gelir:

C:\Users\shufler>subst /?
Associates a path with a drive letter.

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

  drive1:        Specifies a virtual drive to which you want to assign a path.
  [drive2:]path  Specifies a physical drive and path you want to assign to
                 a virtual drive.
  /D             Deletes a substituted (virtual) drive.

Type SUBST with no parameters to display a list of current virtual drives.

Yapmak istediğiniz şey, bir sürücü harfi yerine zincirdeki klasörlerden birini kullanmaktır:

 C:\>subst X: Q:\Dir1\Dir2\ProjectA\FilesForSomething\SomeotherDirectory\Blahblah\RootOfLongFileNames\LongSubdirectoryName1

Artık X: sürücüsünde LongSubdirectoryName1 klasörüne erişiliyor. İşiniz bittiğinde,subst X: /D

Buna her zaman ihtiyacınız varsa, giriş komut dosyanıza ekleyin.

Başka bir yaklaşım, Q: 'nun eşlendiği yerden zincirden aşağıya doğru bir sürücüyü haritalamak olacaktır.


2
Son zamanlarda bu sorunla çok karşılaştım ve SUBST yaklaşımını kullandım. Bu amaçla, ntwind.com/software/utilities/visual-subst.html adresindeki Visual Subst aracını çok değerli buldum .
yosh m

6

İS'nin erişebileceği kadar kısa olana kadar yoldaki dizin adlarını yeniden adlandırmanız gerekir.

Adını değiştirebileceğiniz ve tek bir harfe yeniden adlandırabileceğiniz ilk klasöre gidip gerekli dosyaya ulaşıncaya kadar her bir sonraki klasör için aynısını yaparım.

Yapıyı korumanın gerekliliği ile ilgili olarak: İşletim Sistemlerinde çalışmak zorunda olduğumuz sınırlamalar vardır ve bu parametrelerin dışında rutin olarak çalışmak iyi değildir. Herhangi bir hızlı çözüm, yalnızca gelecekte tekrar çalıştırılması gereken bir yama olacaktır. Gerçek bir çözüm, dizin yapısının bu son derece uzun klasör yolu / dosya adı sorununun artık gerekli olmayacağı şekilde yeniden düzenlenmesini içerecektir.


256 karakter.
bZezzz

Hayır, Windows Gezgini OLMAYAN bir program kullanmaları gerekir, çünkü Windows Gezgini dosya sistemi spesifikasyonlarından habersizdir ve tembel olarak en az ortak paydaya bağlı kalmayı tercih eder, örneğin, bir sürücünün mevcut kökünü kopyalamayı imkansız hale getirir PATH TOO LONG hatalarına maruz kalmadan başka bir özdeş sürücünün (kapasite, biçim vb.) kök dizinine bağlayın.
Triynko


0

EDIT: Başlangıçta robocopy kullanmanızı önerdim, ama elbette bu XP ve önceden yüklenmiş değildir.

Dosya yolunu çok uzunsa, onunla herhangi bir dosya işlemi yapamazsınız. Gördüğüm gibi, birkaç seçeneğiniz var:

  1. Diğer gönderilerin adımlarını izleyin ve kısa olana kadar dizinleri yeniden adlandırın. Bilgisayarlarla ilgili güzel bir şey, sadece sizin için bunu yapmak için değil, aynı zamanda orijinal adların ne olduğunu da takip etmek için bir komut dosyası yazabilmenizdir. Bir senaryo ile bile, bu biraz zaman alıcı olmak zorundadır.

  2. Linux LiveCD edinin. Bilgisayara koyun ve bu CD'den önyükleyin. Ayrı bir dosya sistemi olarak otomatikleştirilecek Windows diskine bakın. İstediğiniz tüm dosyaları alın ve Masaüstünüzdeki yeni bir klasöre koyun. Bu klasörü sıkıştırın ve harici bir sabit sürücüye veya USB çubuğa koyun veya ağ sürücünüz dosya sistemine geri kopyalamaya izin veriyorsa, üst düzey bir dizine taşıyın.


Kurulu robocopy yok ve yüklemek için erişimim olduğundan emin değilim (bu bir iş bilgisayarı). Ayrıca, bu her dosya için çok fazla iş gibi geliyor. Örneğim basitleştirildi: aslında çok derinlerde çeşitli düzeylerde birkaç dizin var, her biri artık yol çok uzun sorunlar nedeniyle erişilemeyen dosyalar içeriyor. Gerçekten herkesin istediği tüm dosyalar için bunu yapmak için zamana ihtiyacım yok.
SinirliWithFormsDesigner
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.