FileShare.None не имеет никакого эффекта в Linux с. NET Core - PullRequest
0 голосов
/ 06 апреля 2020

Я тренируюсь с. NET Ядро и пробую все функции платформы. Сейчас я работаю с вводом / выводом. У меня есть следующий пример, который хорошо работает со старыми. NET Framework.

class Program
{
    static void Main()
    {
        var file = new FileInfo(@"<path to the file>");

        FileStream stream = file.Open(FileMode.OpenOrCreate, FileAccess.Read, FileShare.None);

        Console.WriteLine("Full Name   : {0}", file.FullName);
        Console.WriteLine("Attributes  : {0}", file.Attributes.ToString());
        Console.WriteLine("CreationTime: {0}", file.CreationTime);

        Console.WriteLine("Press any key to delete file ...");
        Console.ReadKey();

        stream.Close();

        file.Delete();

        Console.WriteLine("Successfully deleted");

        Console.ReadKey();
    }
}

Когда я запускаю его со старой. NET Framework, а затем пытаюсь прочитать или просто открыть файл, созданный программой, у меня появляется сообщение об ошибке от windows, которое отправляет мне сообщение этот файл уже используется.

enter image description here

Но это не происходит с Linux (последний Linux монетный двор). После генерации файла я могу открыть его. читать и сохранять с помощью любого блокнота. Я что-то пропустил?

Обновление

Я запускаю приложение не с root. От моего обычного пользователя. И я пытаюсь изменить файл от того же пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...