Eseguire un file lock in C#

Eseguire un file lock in C#

C# ha una modalità molto semplice per bloccare i file, basta usare la classe FileStream.

Qui possiamo trovare i metodi Lock e Unlock, che ci consentono di bloccare / sbloccare anche solo porzioni di un file.

Qui sotto un esempio basico, in cui blocchiamo il file e poi proviamo a cancellarlo:

using System;
using System.IO;

namespace CSharpTest
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                string fileToLock = "test.txt";
                using (FileStream fs = new FileStream(fileToLock, FileMode.Open,
                    FileAccess.Read, FileShare.None))
                {
                    Console.WriteLine("Blocco il file");
                    fs.Lock(0, fileToLock.Length);
                    Console.WriteLine("Provo a cancellare il file");
                    File.Delete(fileToLock);
                }
            }
            catch (IOException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }
}

Questo l'output:

Blocco il file
Provo a cancellare il file
Il processo non può accedere al file 'test.txt' perché è in uso da un altro processo.
Premere un tasto per continuare . . .

Come vedete, impostando il lock sul file, non ci viene permesso di cancellarlo.

Se poi chiudete il programma, il file viene sbloccato e potete cancellarlo.

Oppure, per studio, potete provare ad usare il metodo Unlock.

Enjoy!




Share

Commentami!

About Mattepuffo.com

Blog dedicato all'informatica e alla programmazione!
Tutti i contenuti di questo blog, tranne casi particolari, sono sotto licenza Licenza Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.5. .

2572 articoli
310 commenti
19 progetti
Altri link
  • About
  • Scrivimi
  • Copyright
  • Sitemap
  • matteo.ferrone@yahoo.it
  • GitHub
  • Privacy Policy