C#のFile.EncryptはWindowsのHome editionでは使用できない

表題の通りです。

以下のようなテストメソッドを作りました。

[TestMethod]
private readonly string _filePath = Path.Combine(System.Environment.CurrentDirectory, "temp", "test.csv");
        public void Encrypt()
        {
            var exsist = File.Exists(Path.Combine(System.Environment.CurrentDirectory, "temp", "test.csv"));
            Assert.IsTrue(exsist);
            // このメソッドは、Windows のすべてのバージョンで使用できるわけではありません。 たとえば、Home edition では使用できません。
            File.Encrypt(_filePath);
        }

File.Encrypt(_filePath)で例外が発生します。

エラーの内容は以下

 Encrypt
   ソース: LearnCsv.cs 行 36
   期間: 47 秒

  メッセージ: 
    Test method TakumiUtilitiesTest.LearnCsv.Encrypt threw exception: 
    System.IO.IOException: この要求はサポートされていません。 : 'C:\Users\xiaot\source\repos\ForLearning\TakumiUtilities\TakumiUtilitiesTest\bin\Debug\net5.0\temp\test.csv'

  スタック トレース: 
    FileSystem.ThrowExceptionEncryptDecryptFail(String fullPath)
    FileSystem.Encrypt(String path)
    File.Encrypt(String path)
    LearnCsv.Encrypt() 行 40

公式の注釈に書いてあるんですが、WindowsのHome editionでは使えないようです。

https://docs.microsoft.com/ja-jp/dotnet/api/system.io.file.encrypt?view=net-5.0

C#C#

Posted by takumioda