Eclipse'de bir Java programı hazırladım. Windows XP'de başladım, ancak yakın zamanda yeni sürüme geçtim.Programım neden Win7'nin altında oluşturduğu dosyaları silemiyor?
Kaydetme mekanizmasının bir parçası olarak, program ayarları settings_new.sav
dosyalarına yazar. Bu işlem tamamsa, settings.sav
öğesini siler ve eski adı eşleştirmek için yenisini yeniden adlandırır. WinXP altında çalışırken (en azından bunu yaptığını düşündüm, ama şimdi kontrol edemiyorum), win7 altında, onu oluşturan program olsa bile, dosyayı silmez (programın farklı bir örneği olsa da)).
Dosya Eclipse tarafından alınır ve buradan çok mutlu bir şekilde silinebilir. El ile silebilirim. Kendi bilgisayarımdaki yöneticiyim. Klasör, çalışma alanı klasörünün içinde yer alır ve Program Dosyalarında yer almaz (bununla birlikte, nihai kullanıcıların oraya yüklenip yüklenmeyeceğini bilmiyorum). Program dosyaları güzelce oluşturabilir ve değiştirebilir. İstisnasız bir şey atmıyor, bunu 7 nolu bloke edip etmeyeceğini düşündüm.
Herhangi bir fikrin var mı?
Aslında Windows'da dosya kilitleme mekanizmaları. Aynı kod muhtemelen Linux altında iyi çalışır. Ama kabul ediyorum, her yerde düzgün çalışmasını sağlamak için dosyaya erişimi açıkça kapatmalısınız. –
@MarkRobinson: İlginç, benim swing uygulamalarımı linux da test etmeliyim. Geliştiricilerin JVM'den ziyade OS seviyesinde problemler beklemesi gerektiği görünüyor. – PraveenMax
Windows ve Linux'un farklı dosya kilitleme semantikleri vardır. Linux, kurmadan açmak için açtığınız bir dosyayı silmenize izin verecektir. Daha sonra bir sorun olmadan aynı ada sahip yeni bir dosya oluşturabilirsiniz. Windows'da, başka bir işlemde açıksa, bir dosyayı silmenizi engelleyebilir. Bunun gerçekleştiği özel durumlar, nasıl açıldığına büyük ölçüde bağlıdır (yöntem/ve erişim türüne göre). Daha fazla sorunuz varsa, Windows çocuklarına yönelik yeni bir SO sorusu göndermenizi öneririm :) –