2009-03-18 12 views

cevap

2

Eğer dosya tanıtıcısı paylaşım türü belirtebilirsiniz ilk sürecin kontrolünü varsa

string contents1; 
string contents2; 
using (FileStream fs1 = new FileStream("test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) 
{ 
    using (var tr1 = new StreamReader(fs1)) 
    { 
     using (FileStream fs2 = new FileStream("test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) 
     { 
      using (var tr2 = new StreamReader(fs2)) 
      { 
       contents2 = tr2.ReadToEnd(); 
       contents1 = tr1.ReadToEnd(); 
      } 
     } 
    } 
} 

Console.WriteLine(contents1); 
Console.WriteLine(contents2); 
+0

Dosyayı kilitleyen işlemin kontrolüne sahip değilim. – Malfist

9

cevabım size çok kullanım, ama SO Q olmanın olmayabilir bu yüzden bu soru, zaten oldukça eskidir & Bir site hala başka birine yardımcı olabilir.

G/tüm uygulama indirdi istemiyorum olamaz, ama işlemdir

şöyle bir şey:

  1. Sen için Birim Gölge Servis Sağlayıcısı üzerinden bir birim gölge kopyası oluşturmak Dosyanızın okunması gereken sürücü (bu, MSDN üzerinde de belgelenmiştir, ayrıca bu gölge kopyalarını oluşturan örnek bir istemci de vardır ve büyük olasılıkla sizin için yeterli olacaktır)

  2. Kalıcı bir yöntem veya "geri arama" mekanizması (uygulamanızı çağırır)

  3. Açık UNC yolları ve CreateFile yoluyla istenen dosya (UNC şöyle görünür: \\ \ GLOBALROOT \ Devices \ HarddiskVolumeShadowCopyXZY \ yourpath \ yourfile.yourextension?)

  4. Do dosyanın

    ne istersen burada http://technet.microsoft.com/en-us/library/cc785914%28WS.10%29.aspx ve: Eğer kalıcı bir VSC yaptıysanız

    fazla bilgi burada

bittikten sonra
  • bunu silmek örnek istemcisi kullanmalısınız http://msdn.microsoft.com/en-us/library/bb968832%28VS.85%29.aspx

  • +2

    Sorun, .NET'in yerleşik dosya yönetim araçlarının \\? \ GlobalRoot yönergelerine erişememesidir. Aslında winapi seviyesine inmek zorundasın. AlphaFSS adlı bir kütüphane var, ancak bazı önemli sorunları var. Bir süredir kullandım, ancak DWORD'lerin boyutlarını temsil etmesi için gereken dosya boyutuyla ilgili problemlerle karşılaştım, AlphaFSS sadece alt DWORD'u okuyor. – Malfist

    İlgili konular