Java 7 WatchService API'sini temel alan bir dizindeki dosyaların içeriğini izleyen bir uygulamada yinelenen bir sorunla karşılaşıyorum. Temel dosya sistemi bir dosya üzerinde bir değişiklik olayı başlattığında, SHA-256'yı hemen hesaplamak istiyorum.Java I/O: Bir dosyanın herhangi bir yeniden işlem yapmadan önce başka bir işlem tarafından kilitlenmediğinden emin olun
Ancak, genellikle başka bir işlemin dosyanın açılmış olması (yani Word), dolayısıyla özel bir kilidi göz ardı etmesi ve uygulamamın herhangi bir okuma/yazma işleminden engellenmesi de meydana gelir. Herhangi Akış/Kanal açıldı dosyaya karşı oluşturulan, bir FileNotFoundException veya nio APı'NIN için FileSystemException gibi bir mesajla birlikte atılır: başka bir işlem tarafından kullanıldığı için işlem dosyaya erişemiyor
Dosya gerçekten fs'de olmadığında "gerçek" FileNotFoundException'ı maskelemeden bu tür durumları algılayacak bir çözümle gelemedim.
Varolan dosyayı File.exists aracılığıyla denetleme düşüncesiyle geldim ve bir akış açtığımda FileNotFoundException atılırsa, dosyanın kilitlendiğini anlayabilirim. Bu konuda herhangi bir girişe açığım!
Teşekkürler!
hiç bu çözüm bulmak ... sonsuzluğa sırasında dosyalarda kolları tutar? –
File UdFatchException catch bloğu içinde File.exists true döndürürse, dosya kilitli olarak yorumladım, belirtilen sezgisel kullanarak sona erdi. – sylvain