Windows sistemlerinde, dosyaları yeniden adlandırmak işlevsel olarak onları silmeye benzer mi?


9

Windows dosya sistemini anladığım kadarıyla, bir program bir dosyayı yoluna göre okuyabilir, bu yol değiştirilirse, bu dosyayı okumak için kullanılan herhangi bir program artık bunu yapamaz. Bu, Windows sistemindeki bir dosyaya bağlı olan herhangi bir program için, bir dosyayı silmenin ve yeniden adlandırmanın sonuçlarının aynı olması gerektiği anlamına gelir.

Bu cevabın bağlı olduğu özel durum, Windows 2000 üzerinde çalışan gömülü bir sistemdir, servis sağlayıcı kılavuzu kullanıcıya bir klasör içindeki dosyaları silmesi için rehberlik eder. Dikkatli bir kullanıcı olarak, dosyaları "folder_backup" adlı bir yola kopyaladım ve klasörü boş bıraktım.

Bu işlem sırasında sistem geriledi ve düzgün çalışamadı. Böylece kılavuzu yazan servis sağlayıcısı arandı. Teşhisi, veritabanının bozuk olması ve ikinci veritabanı olarak "folder_backup" ı gösteren 2 veritabanı olmasıydı. Anladığım kadarıyla, "D: / folder_backup" içindeki dosyalar, "klasör" ile başlayan veya "D: /" dosyasındaki tüm içeriği okuyan klasörleri arayan bir programın istisnai durumunu kısıtlayan eylemsiz olurdu.

Yeniden adlandırılmış bir dosyaya hangi sistem tarafından erişilemiyorsa, dosya silinmişse bu imkansız olurdu.


1
Aslında dosyaları kopyaladınız mı (bir noktada iki kopyaya sahip ve sonra orijinali sildiniz) ya da basitçe taşıdınız mı?
GSerg

1
Sistem oldu çalıştıran bu veritabanlarını okuma anda? Windows'ta (Linux da) dosyaları açıkken kopyalamak mümkündür (belirli "modlarında" dosyaları açan uygulamaya bağlı olarak). Bu muhtemelen bozuk kopyalar BTW ile sonuçlanacaktır.
davidbak

@davidbak Negatif, dosyalar yeniden adlandırılırken uygulama kapatıldı.
Tomas Zubiri

@GSerg Klasörü yeniden adlandırdığımı ve ardından uygulama kurulumunun yeniden oluşturmasına izin verdiğime inanıyorum.
Tomas Zubiri

Bir dosyanın kimliğinin bir tamsayı olduğu ve bir dosya adının gerçekten yalnızca adlardan kimliğe bir eşleme olduğu Unix dosya sistemleriyle karşılaştırın ve dosya adı ve hiçbir işlem açılıncaya kadar silinmez. Unix'te bir dosyayı yeniden adlandırmak yeni bir ad eşlemesi ekler, ardından eski adı kaldırır, böylece hiçbir noktada dosya silinmez.
Raedwald

Yanıtlar:


16

Gerçekten seçim için şımarık.


Vay canına, bir dosyayı yeniden adlandırarak bir şeyi kırmanın pek çok yolu olmasını beklemiyordum. Teşekkürler!
Tomas Zubiri

@ wizzwizz4 2000 NT
zdimension

-2

Yeniden adlandırılmış bir dosyaya yine başka bir program tarafından erişilebilir.

  • Yeniden adlandırılan bir dosyaya başka bir program tarafından erişilebilmesinin bir yolu da, dosyayı yeniden adlandıran aynı program tarafından yeni dosya yoluna ayarlanan bir ortam değişkenidir. Adı geçen dosyaya erişmek isteyen program, sabit bir dahili ayarlı dosya yolu yerine dosya yolu için ortam değişkenini kullanır.

  • Başka bir yol, dosyanın belirli bir klasördeki tek dosya olmasıdır. Bu dosyayı kullanmak isteyen program, belirli bir klasörde asla birden fazla dosya olmaması gerektiğini bilir, ancak dosya adının değişebileceğini, ancak ait olduğu dizinin aynı kalacağını bilir. Program sadece o klasörde bulabileceği ilk dosyayı kullanır, her zaman bu dosya olmalıdır. Ancak bu iyi bir uygulama değildir ve bir ortam değişkeniyle daha iyi durumdasınızdır.

Başarısız olursa, bazı programlar otomatik olarak kullanıcıdan kodunu yürütmeye devam etmeden önce dosyayı bulmasını ister.

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.