C# dotnet ファイル名・パス名で使用できない文字を検出

GetInvalidFileNameChars結果

C# .NET 6 でファイル名を指定する場合、ファイル名・パス名で使用できない文字を

検出できるメソッドが用意されています。

ファイル名の使用できない文字を検出

コード例

using System.IO;

string fileName = "フ\0ァイ/ル名1";

foreach(char invalidChar in Path.GetInvalidFileNameChars()){
    if (fileName.Contains(invalidChar) ){   // ファイル名として利用できない場合 true
        Console.WriteLine("利用できない文字 = {0:c}(0x{1:X4})", invalidChar, (int)invalidChar);
    }
}
結果 (macOSの場合)

GetInvalidFileNameChars()を実行した場合、macOSでは [0x00,0x2F]が返る

パス名の使用できない文字を検出

コード例

using System.IO;

string pathName = "フ\0ァイ/ル名1";

foreach(char invalidChar in Path.GetInvalidPathChars()){
    if (pathName.Contains(invalidChar) ){   // ファイル名として利用できない場合 true
        Console.WriteLine("利用できない文字 = {0:c}(0x{1:X4})", invalidChar, (int)invalidChar);
    }
}

GetInvalidPathChars()は、 macOSの場合 [0x00]が返る

MacBook CPUファンが唸る原因の1つ mds_stores対策で少しだけ改善

MacBook CPUファンが唸る原因の1つ mds_stores対策で少しだけ改善

最近、 MacBookの CPUファンが 頻繁に唸るので アクティビティモニタで確認すると

下↓のように mds_storesという実行ファイルがCPUを占領していた。

アクティビティモニタ mds_stores

この mds_storesは、 Spotlightなどのインデックスを作る metadata serverということらしい

Spotlightのインデックス作成の量を減らせば少し改善されるはず

[システム環境設定]を開き↓

メニューの[システム環境設定]

[Spotlight]設定を開きます。↓

Spotlight設定

[Spotlight]設定画面内の [検索結果]タブのチェックを外していきます。

私の、 チェックは下↓の程度です。

Spotlightの検索結果チェックを外した

私の場合、 アプリ起動はSpotlightを使っているので それ以外はチェックを外しました。

この設定変更だけで、 mds_storesのCPU専有している率は多少下がりました

2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED