Trong các hệ thống windows, việc đổi tên các tệp có chức năng tương tự như xóa chúng không?


9

Theo hiểu biết của tôi về hệ thống tệp Windows, một chương trình có thể đọc tệp theo đường dẫn của nó, nếu đường dẫn này bị thay đổi, thì bất kỳ chương trình nào được sử dụng để đọc tệp này, không thể làm như vậy nữa. Điều này có nghĩa là, đối với bất kỳ chương trình nào trong hệ thống windows phụ thuộc vào tệp, hậu quả của việc xóa và đổi tên tệp phải giống nhau.

Trường hợp cụ thể mà câu trả lời này phụ thuộc vào là một hệ thống nhúng chạy trên Windows 2000, hướng dẫn của nhà cung cấp dịch vụ hướng dẫn người dùng xóa các tệp trong một thư mục. Là một người dùng cảnh giác, tôi chỉ cần sao chép các tệp vào một đường dẫn có tên là "thư mục_backup" và để trống thư mục.

Trong quá trình hoạt động này, hệ thống đã thoái lui và không thể hoạt động chính xác. Vì vậy, các nhà cung cấp dịch vụ viết hướng dẫn đã được gọi. Chẩn đoán của họ là cơ sở dữ liệu bị hỏng vì có 2 cơ sở dữ liệu song song, chỉ đến "thư mục_backup" là cơ sở dữ liệu thứ hai. Theo hiểu biết của tôi, các tệp bên trong "D: / folder_backup" sẽ bị trơ, chặn trường hợp đặc biệt của một chương trình tìm kiếm các thư mục bắt đầu bằng "thư mục" hoặc đọc tất cả nội dung trong tệp "D: /".

Theo những cách không tối nghĩa, một tập tin được đổi tên vẫn có thể được truy cập bởi một hệ thống, điều đó có thể là không thể bị xóa tập tin?


1
Trong thực tế, bạn đã sao chép các tập tin (có hai bản sao tại một số điểm và sau đó xóa bản gốc) hoặc chỉ đơn giản là di chuyển chúng?
GSerg

1
Có phải hệ thống đang chạy tại thời điểm đọc các cơ sở dữ liệu đó? Trên Windows (Linux cũng vậy) có thể sao chép các tệp trong khi chúng đang mở (tùy thuộc vào ứng dụng mở các tệp trong "chế độ" nhất định). Điều này có thể sẽ dẫn đến các bản sao bị hỏng, BTW.
davidbak

@davidbak Phủ định, ứng dụng đã bị đóng khi đổi tên các tệp.
Tomas Zubiri

@GSerg Tôi tin rằng tôi đã đổi tên thư mục và sau đó cho phép thiết lập ứng dụng để tạo lại nó.
Tomas Zubiri

So sánh với các hệ thống tệp Unix, trong đó ID của tệp là một số nguyên và tên tệp thực sự chỉ là ánh xạ từ tên sang ID và tệp không bị xóa cho đến khi không có tên và không có quy trình nào mở. Đổi tên một tệp trong Unix thêm một ánh xạ tên mới, sau đó xóa tên cũ, vì vậy không có lúc nào tệp bị xóa.
Raedwald

Câu trả lời:


16

Tha hồ lựa chọn thực sự.


Ồ, tôi không mong đợi có nhiều cách để phá vỡ thứ gì đó bằng cách đổi tên một tập tin. Cảm ơn!
Tomas Zubiri

@ wizzwizz4 2000 là NT
zdimension

-2

Một tập tin được đổi tên vẫn có thể được truy cập bởi một chương trình khác.

  • Một cách mà một tệp được đổi tên vẫn có thể được truy cập bởi một chương trình khác là một biến môi trường được đặt thành đường dẫn tệp mới bởi cùng một chương trình đã đổi tên tệp. Chương trình muốn truy cập tệp đã sử dụng biến môi trường cho đường dẫn tệp thay vì đường dẫn tệp được đặt bên trong cố định.

  • Một cách khác là tập tin là tập tin duy nhất trong một thư mục cụ thể. Chương trình muốn sử dụng tệp này biết rằng không bao giờ nên có nhiều hơn một tệp trong thư mục cụ thể đó, nhưng biết rằng tên tệp có thể thay đổi nhưng thư mục mà nó thuộc về sẽ giữ nguyên. Chương trình chỉ cần sử dụng tệp đầu tiên mà nó có thể tìm thấy trong thư mục đó, phải luôn là tệp đó. Tuy nhiên đây không phải là thực hành tốt và bạn tốt hơn với một biến môi trường.

Không thành công, một số chương trình sẽ tự động yêu cầu người dùng xác định vị trí tệp trước khi tiếp tục thực thi mã của nó

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.