potisanのプログラミングメモ

趣味のプログラマーがプログラミング関係で気になったことや調べたことをいつでも忘れられるようにメモするブログです。はてなブログ無料版なので記事の上の方はたぶん広告です。記事中にも広告挿入されるみたいです。

C# 9 システムフォルダに存在するOS DLLを取得する

C# 9 システムフォルダに存在するOS DLLを取得するサンプルコードです。バージョン情報の製品名が「Microsoft® Windows® Operating System」のDLLをOS DLLとみなしています。

using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var osDllFileNames = GetOperatingSystemDLLFileNamesInSystemFolder();
foreach (var osDllFileName in osDllFileNames)
{
    Console.WriteLine(osDllFileName);
}

static string[] GetOperatingSystemDLLFileNamesInSystemFolder()
{
    var winDirPath = Environment.GetFolderPath(Environment.SpecialFolder.System);
    return Directory.GetFiles(winDirPath, "*.dll")
        .Where(path => FileVersionInfo.GetVersionInfo(path).ProductName == "Microsoft® Windows® Operating System")
        .Select(path => Path.GetFileName(path))
        .ToArray();
}