Tên tệp quá dài và Windows không thể mở tệp


12

Có một loạt các tệp trên một ổ đĩa mạng, trên một đường dẫn khá sâu và các thư mục trên hầu hết đều có tên dài. Tôi nghĩ rằng chúng ban đầu được tạo khi ai đó sao chép và dán thư mục gốc cho nhóm tệp này từ máy trạm cục bộ của họ vào ổ đĩa mạng chung. Tôi tưởng tượng rằng trên máy trạm cục bộ, không có vấn đề gì khi mở tệp, nhưng bây giờ chúng nằm trên một đường dẫn dài hơn trên mạng, Windows không thể mở chúng khi tôi nhấp đúp. Tôi cũng đã thử sao chép các tệp và đổi tên chúng thành đôi khi ngắn hơn, nhưng Windows cũng không thể làm điều đó.

TL; DR

các tệp từ máy trạm của ai đó trên đường dẫn (giả định) như thế này:

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

hiện đã được sao chép và dán vào mạng như thế này:

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

Và đường dẫn bây giờ quá dài để Windows XP xử lý.

Bất kỳ lời khuyên như làm thế nào tôi có thể đọc các tập tin này?


Đồng ý ! Hãy xem superuser.com/questions/257472/
Mạnh

@bZezzz: Có vẻ như nó sẽ hoạt động trên cơ sở từng tệp, nhưng tôi đang tìm kiếm một số thứ để làm cho toàn bộ chúng có thể truy cập cùng một lúc. Sao chép vào các máy trạm cục bộ sẽ ổn nhưng tên tệp dài phải được giữ nguyên (chúng cung cấp ngữ cảnh rất cụ thể cho nội dung tệp). Ngoài ra, nhiều người dùng ở đây không đủ kỹ thuật để bắt đầu mở tệp từ dòng lệnh. Đề nghị của bạn có thể làm việc cho tôi và một người khác.
Thất vọngWithFormsDesigner

Câu trả lời:


7

Hãy thử thay thế đường dẫn bằng SUBST.EXE. Nó đi kèm với Windows:

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.

Những gì bạn muốn làm là thay thế một trong các thư mục trong chuỗi cho một ký tự ổ đĩa:

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

Bây giờ thư mục LongSubdirectoryName1 được truy cập trên ổ X :. Khi bạn thực hiện xong, bạn có thể xóa thay thế bằngsubst X: /D

Nếu bạn cần điều này mọi lúc, sau đó thêm nó vào tập lệnh đăng nhập của bạn.

Một cách tiếp cận khác là ánh xạ một ổ đĩa xuống phía dưới chuỗi từ bất kỳ nơi nào Q: được ánh xạ.


2
Gần đây tôi đã phải đối mặt với vấn đề này rất nhiều và tôi đã sử dụng phương pháp SUBST. Với mục đích đó, tôi đã tìm thấy công cụ Visual Subst có sẵn tại ntwind.com/software/utilities/visual-subst.html là vô giá.
yosh m

6

Bạn sẽ cần đổi tên các thư mục trong đường dẫn cho đến khi tên đó đủ ngắn để HĐH truy cập.

Tôi sẽ điều hướng đến thư mục đầu tiên có tên mà bạn có thể sửa đổi và đổi tên nó thành một chữ cái và sau đó thực hiện tương tự cho mỗi thư mục tiếp theo cho đến khi bạn nhận được tệp cần thiết.

Về sự cần thiết của việc giữ cấu trúc: Có những hạn chế mà chúng tôi phải làm việc trong Hệ điều hành và việc vận hành thường xuyên bên ngoài các tham số đó là không tốt. Bất kỳ giải pháp nhanh chóng nào bây giờ sẽ chỉ là một bản vá cần được chạy lại trong tương lai. Một giải pháp thực sự sẽ liên quan đến việc sắp xếp lại cấu trúc thư mục sao cho vấn đề tên đường dẫn / tên tệp rất dài này không còn cần thiết nữa.


256 ký tự.
bZezzz

Không, họ cần sử dụng một chương trình KHÔNG phải Windows Explorer, vì Windows Explorer không biết gì về thông số hệ thống tập tin và lười biếng sử dụng mẫu số ít phổ biến nhất, ví dụ, không thể sao chép gốc của một ổ đĩa đến thư mục gốc của một ổ đĩa giống hệt khác (về dung lượng, định dạng, v.v.) mà không gặp phải lỗi TẠM DÀI.
Triynko


0

EDIT: Ban đầu tôi đề nghị sử dụng robocopy, nhưng tất nhiên đây là XP và nó không được cài đặt sẵn.

Không có cách nào bạn có thể 'cung cấp cho mọi người những gì họ muốn' Nếu filepath quá dài, bạn sẽ không thể thực hiện bất kỳ thao tác tệp nào với nó. Theo cách tôi thấy, bạn có một vài lựa chọn:

  1. Thực hiện theo các bước của các bài đăng khác và đổi tên các thư mục cho đến khi chúng ngắn. Điều tuyệt vời ở máy tính là bạn có thể viết một kịch bản để không chỉ làm điều này cho bạn, mà còn theo dõi tên gốc là gì. Ngay cả với một kịch bản, điều này chắc chắn sẽ hơi tốn thời gian.

  2. Nhận Linux LiveCD. Đặt nó vào máy tính và khởi động từ đĩa CD đó. Đi xem đĩa Windows sẽ được tự động hóa như một hệ thống tệp riêng biệt. Nhận tất cả các tệp bạn muốn và đặt chúng vào một thư mục mới trên Bàn làm việc của bạn. Zip thư mục đó và đặt nó vào ổ cứng ngoài hoặc thẻ nhớ USB hoặc nếu ổ đĩa mạng của bạn cho phép sao chép trở lại hệ thống tập tin, hãy chuyển nó vào thư mục cấp cao nhất.


Tôi chưa cài đặt bản sao và tôi không chắc mình có quyền truy cập để cài đặt nó (đó là một máy tính làm việc). Ngoài ra, điều này có vẻ như rất nhiều công việc cho mỗi tập tin. Ví dụ của tôi đã được đơn giản hóa: thực sự có một số thư mục ở nhiều cấp độ quá sâu, mỗi thư mục chứa các tệp hiện không thể truy cập được do các vấn đề quá dài. Tôi thực sự không phải mất thời gian để làm điều này cho tất cả các tệp mà mọi người muốn.
Thất vọngWithFormsDesigner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.