【C#】列挙体で複数の値を選択する

動作確認

Visual Studio 2017 C#

列挙体の定義

[Flags]
private enum EnumSample
{
    //項目が混じらないように、それぞれ立てるビットの位置を変える
    a = 0b0001,     //「0b」から始めると2進数で書ける
    b = 0b0010,
    c = 0b0100,
    d = 0b1000
}

使い方

//aとcを選択する
var sample = EnumSample.a | EnumSample.c;

//選択されているかはHasFlagを利用して確認する
if (sample.HasFlag(EnumSample.a))
{
    //こっちに来る
    Console.WriteLine("aは存在");
}
else
{
    //こっちには来ない
    Console.WriteLine("aは未存在");
}

//どの項目が選択されているかを確認したい場合は、列挙体の全項目を回してチェックできる
foreach (EnumSample enumValue in Enum.GetValues(typeof(EnumSample)))
{
    Console.WriteLine($"{enumValue} = " + sample.HasFlag(enumValue));
    /*
     * 実行結果
     * a = True
     * b = False
     * c = True
     * d = False
     */
}

【C#】【Linq】ファイル名の昇順に並べたリストを作成する

目的

ファイル名が「file1.txt」「file2.txt」「file10.txt」などの規則性がある場合に、正しくソートしたい場合を想定。 今回は、ファイル名中の数値のみを正規表現で取得し、それをソートすることで実現した。

ソースコード

var fileList = (new DirectoryInfo(filePath)).GetFiles().
    Select(x =>
    new
    {
        name = x.FullName,
        //ファイル名だけ取り出す→数字だけ残す→数値に変換する(ソート用)
        no = int.Parse(Regex.Replace(Path.GetFileName(x.FullName), @"[^0-9]", ""))
    }
    ).OrderBy(x => x.no).ToList();

【Windowsアプリ】ConvertCRLF

2020/08/05 v1.0.0

テキストファイルの改行コードをCRLFに変換するコンソールアプリです(GUI画面はありません)

ConvertCRLF.exeにテキストファイルをドラッグ&ドロップすると、
変換を行います。
※ファイルを上書き保存しますので、バックアップを予め取得しておいてください!元に戻せません。

コマンドプロンプトからは、引数の1番目にテキストファイルパスを指定すれば実行できます。
例)
ConvertCRLF.exe “C:temphoge.txt”

戻り値)
0:正常終了(変換成功)
1:異常終了(変換失敗。エラー詳細はコンソール出力を参照)

ダウンロード

ダウンロード(13KB)
※ダウンロード後、Zipファイルを解凍する前に、ファイルを右クリックして「ブロックを解除」してください。

【curl】【Windows】統合Windows認証しながら、POSTパラメータとファイルをアップロードする

curl.exe --ntlm --user userId:password --connect-timeout 30 --max-time 10800 -XPOST -F "uploadFile=@C:tempdummyFile.txt" -F "ParameterPost=hoge" "https://localhost/app?ParameterGet=hogehoge"
  • 統合Windows認証のためのユーザーIDとPWを指定
    • –ntlm –user userId:password
  • 接続タイムアウトを30秒
    • –connect-timeout 30
  • 最大処理時間を3時間(60秒*60分*3時間)
    • –max-time 10800
  • アップロードファイルを指定
    • -XPOST -F “uploadFile=@C:tempdummyFile.txt”
  • POSTパラメータを指定
    • -F “ParameterPost=hoge”
  • URLを指定(GET含む)
    • “https://localhost/app?ParameterGet=hogehoge”