Uygulamalarımdan biri kullanımda olan dosyaları okuma (ve sadece okuma) amaçlamaktadır. örneğin, daha önceden açılmış bir dosyayı okurkenŞu anda kullanılan bir dosya nasıl okunur, Windows kopyalanırken ne yapar?
Fakat, Microsoft Word, bu uygulama atar bir System.IO.IOException
:
o varlık olduğu için dosyayı 'Burada < dosya adı >' erişemez süreç başka bir işlem tarafından kullanılır.
dosyayı okumak için kullanılan koddur: Elbette
using (Stream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete))
{
// Do stuff here.
}
, dosya zaten kullanılan bu yana, bu istisna bekleniyor. Sonra okumak için, yeni bir konuma dosyayı kopyalamak için işletim sistemini sorarsanız
Şimdi, çalışır: zaten kullanılmış dosyayı okumak için izin verir File.Copy
büyüsü nedir
string tempFileName = Path.GetTempFileName();
File.Copy(fileName, tempFileName, true);
// ↓ We read the newly created file.
using (Stream stream = new FileStream(tempFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete))
{
// Do stuff here.
}
Bir uygulama ile, özellikle bu sihri geçici bir kopyasını almadan dosyayı okumak için nasıl kullanılır?
Kodun benim için iyi çalışıyor. Yukarıdaki snippet'inizde olmasa da, uygulamanızda FileAccess.Write belirtebilmeniz mümkün mü? –
Ciaran Keating'in dediği gibi orijinal kodunuz benim için çalışıyor. "// Burada şeyler yap" da ne yapıyorsun? –