Aynı işlem tarafından kilitli bir dosyayı silmek mümkün -

3 Cevap

C # ile yazılmış bir COM dll kullanan PHP ile yazılmış bir uygulama var. Dll diğer iki görüntü dosyalarını birleştirerek bir görüntü dosyası oluşturur. PHP komut dosyası daha sonra iki kaynak dosyaları silerek ve birleşik dosyayı yeniden adlandırma temizlik görevleri yapmak devraldı.

Sorun çünkü kilitli PHP komut dosyası kaynak dosyalardan birini silemezsiniz değildir. Garip şey kilitli süreç bu durumda Apache Web Sunucusu olan kendisi olmasıdır.

Ben önce çıkan nesneleri tüm bitmap ve grafik imha C # dll değiştirerek denedim ve henüz kilit kalır. Benim soru gidelim ve dosya kilitlerini serbest bırakmak için dll almak için ne yapabilirim, ne olduğunu. Bu çok sinir bozucu.

3 Cevap

Kesinlikle görüntü üzerinde tüm potansiyel kilitleri kurtulmak aldığınızdan emin olmak için, bir kullanarak blokta kodunuzu sarın.

using(Bitmap myBitmap = new Bitmap())
{
  //use myBitmap in here
}

Bir uygulama kesinlikle kendisi bir dosyayı kilitleyebilir. Örneğin:

using(FileStream fs = File.Open("somefile.txt", FileMode.Open))
{
    File.Delete("somefile.txt"); // Exception: File already in use.
}

Eğer PHP dosyası temizlemek için önce dosyaya tüm açık kolları kapalı olduğundan emin olmanız gerekir.

Son çare olarak size dosyaları açmak için Unlocker programı (komut satırı üzerinden) kullanabilirsiniz.