FileShare
FileShare передают в конструктор
FileStream вместе с
FileMode
и
FileAccess.
None - эксклюзивно для этого процесса.
Read разрешает другим открыть на чтение.
Delete позволяет удалить файл,
пока поток открыт (.NET).
Синтаксис
using FileStream stream = new FileStream(
path, FileMode.Open, FileAccess.Read, FileShare.Read);
Пример
Давайте откроем abcde.txt с
FileShare.None:
using System;
using System.IO;
class Program
{
static void Main()
{
File.WriteAllText("abcde.txt", "abcde");
using (FileStream stream = new FileStream(
"abcde.txt", FileMode.Open, FileAccess.Read, FileShare.None))
{
Console.WriteLine(stream.CanRead);
}
File.Delete("abcde.txt");
}
}
Результат выполнения кода:
True
Пример
Давайте указать FileShare.Read
и прочитать длину:
using System;
using System.IO;
class Program
{
static void Main()
{
File.WriteAllText("abcde.txt", "12345");
using (FileStream stream = new FileStream(
"abcde.txt", FileMode.Open, FileAccess.Read, FileShare.Read))
{
Console.WriteLine(stream.Length);
}
File.Delete("abcde.txt");
}
}
Результат выполнения кода:
5
Пример
Давайте открыть с FileShare.Delete:
using System;
using System.IO;
class Program
{
static void Main()
{
File.WriteAllText("abcde.txt", "abcde");
using (FileStream stream = new FileStream(
"abcde.txt", FileMode.Open, FileAccess.Read, FileShare.Delete))
{
Console.WriteLine(stream.Length);
}
File.Delete("abcde.txt");
}
}
Результат выполнения кода:
5
Смотрите также
-
FileAccess,
чтение и запись потока -
Open,
режим для существующего файла -
File.Open,
открытие без явногоFileShare -
FileMode,
второй параметр конструктора