2013-08-05 18 views
6

üzerinde IOException neden olmadan bir dosyayı okuma.Ben periyodik bir 3. parti program tarafından yazılır olan bir dosyayı okuyorum 3. parti programı

using (FileStream fs = new FileStream(
         FullPath, 
         FileMode.Open, 
         FileAccess.Read, 
         FileShare.ReadWrite)) 

3. parti programı dosyaya yazma ama ne zaman 3. parti programı okumak için Açık dosyası var Yani bazen FileShare.None

kullanıyor Ancak: Aşağıdaki FileStream kullanarak Im okuma dosyayı özel erişim ile açmaya çalışır ancak başarısız olur.

nasıl 3. parti programı için sorunlara neden olmadan bu dosyayı okuyabilir? Başka bir uygulamaya öncelik vermek için okumamı bırakıyorum. Bunu yapmanın herhangi bir yolu var mı? Yapmak istediğiniz ne

+0

Bunu geçici bir konuma kopyalamayı denediniz mi? Genelde yaptığım şey, kullanımda yanlış döndürdüğünde bir dosya okumayı deneyen bir işlev oluşturmasıdır, ancak bir doğru döndürmezse, dosyayı kopyalayıp bu bilgisayarda çalışabileceğim bir konuma taşımayı denerim. Bir üretim dosyasıyla çalışmak, özellikle karışımdaki 2 işlemle potansiyel olarak tehlikeli olabilir. – Bearcat9425

+0

File.Copy sadece arka planda bir FileStream gerçekleştirir. Okumaya çalıştığımda ve kilitlendiğinde sorun değil. Dosyaya erişebildiğim ve 3. parti programı özel erişim kazanmaya çalıştığında, ancak bunu açamayacağımı söyleyebilirim. – CathalMF

+0

Dosyayı geçici bir konuma kopyalarsanız ve programınızın orijinal dosyayı kullanımda kalmayacak şekilde bu geçici dosyayı kullanmasına izin verirseniz ve bu nedenle 3. taraf program tarafından hiçbir sorun olmadan erişilemez. Bu mantıklıysa: D – aladd04

cevap

1

Bu üçüncü taraf proccess (.exe, windows servisi, web uygulaması, vb.) Hiç durursa, dosyaya hiçbir zaman durmazsa veya imkansızsa dosyaya erişebilirsiniz. Çalışacağını söyle, sunucuyu açar açmaz bu dosyayı bir kopyasını gönderebilirsin. Bu dosyayı okumak gerekir ne sıklıkta

Bu geçerli veya uygulamanızın doğası ve diğeri bağlı değil ve olacak.

+0

Hayır asla durmaz. – CathalMF

+0

Belki de bu hizmet, dosyadaki aynı bilgileri alabileceğiniz bazı genel yöntemlere sahiptir. –

1

ben kullanmadım yaparken, şu anda başka bir yazılım tarafından kilitli olmayan dosyanın parçalarını akışı yardımcı olmak için System.IO.Filestream.Unlock yöntemi kullanmak denediniz mi? Diğer yazılımın tüm dosyayı kilitlemediğini varsayacağım.

İlgili konular