Bir şekilde eğer bir dosyanın kullanımda olup olmadığını kontrol etmek için var mı?
C bir program yazıyorum# defalarca 1 Resim dosyasına erişmek için ihtiyacı var. Çoğu zaman çalışır, ama eğer Bilgisayarım hızlı koşuyor, dosya sistemi geri kaydedilir ve bir hata atma olmadan dosyaya erişmek için çalışacağız:"Başka bir işlem tarafından kullanılan dosya".
Bu etrafında bir yol bulmak istiyorum, ama benim Googling tek özel durum işleme kullanarak kontrolleri oluşturma vermiştir. Bu ise kimsenin bunu yapmanın daha iyi bir yolu olup olmadığını merak ediyordum yani benim dine karşı?
CEVAP
Bu bir güvenlik açığı olarak belgelenmiş örnekler var ki bu konu, bir yarış durumu muzdarip olabilir. Dosya kullanılabilir olduğunu kontrol edin, ama denemek ve kullanmak eğer kötü niyetli bir kullanıcı kuvvet ve kodunuzu faydalanmak için kullanabilirsiniz bu noktada atabilirsiniz.
En iyi bahis dosyayı ele almaya çalışan bir try catch / finally.
try
{
using (Stream stream = new FileStream("MyFilename.txt", FileMode.Open))
{
// File/Stream manipulating code here
}
} catch {
//check here why it failed and ask user to retry if the file is in use.
}
Eğer bir dize geçerli bir adres olup o...
Eğer bir dize geçerli bir sayı olup ol...
En zarif şekilde, string Python boş ol...
Eğer Yol bir Dosya olup olmadığını kon...
Eğer bir dize PHP JSON olup olmadığını...