hakeの日記

Windows環境でプログラミングの勉強をしています。

Windows10 v1809 October 2018 Updateの配信を停止(勝手にフォルダ内のファイルが削除)

blog.livedoor.jp

なんという凶悪なバグ!
幸い自分のPCでは、この症状は出ていない&データバックアップしているので問題は生じませんが……
昨年のインストール失敗の例もあるので、配信されて直ぐに自分からインストールしに行くのは止めておいた方が良さげですね。

C# - ディレクトリ内一覧の取得

Directoryクラスの静的メソッドを使用することで、全て、ファイルのみ、サブディレクトリのみと取得できる。またワイルドカードを使用して特定もののみを取得することも可能である。
全てを取得した場合は、ディレクトリかファイルかの区別はFile.GetAttributes() でAttributesを取得し、HasFlag() メソッドでディレクトリフラグが立っているかで判定する。HasFlag() メソッドは、FileAttributes Enumの上位クラスであるEnumクラスで定義されている。

対象ディレクトリの構成

C:\>dir /B c:\test
Dir1A
Dir1B
Dir2A
Dir2B
File1.txt
File2.docx
FIle3.txt
File4.docx

 

続きを読む

C# - usingブロックの動作

昨日使用したusingブロックの動作の確認。
MSのドキュメントによると、using( )内で宣言できるのは、IDisposableインターフェースを継承したクラスになる。具体的には、void Dispose() メソッドを持っていることが必要となる。
usingブロックを抜ける際に、このDispose() メソッドが実行される。

    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }

このメソッド内で終了処理およびインスタンス自身の破棄が実施される?ので、デストラクタは実行されない。
usingブロック外でnewによりインスタンスが生成された場合は通常どうりデストラクタが実行される。

続きを読む

C# - テキストファイルのアクセス

テキストファイルに対して1行単位で読み書きする例。
エンコード文字コード)は環境のデフォルトのものを取得して設定している。設定を省略した場合はutf-8となる。特定のエンコードを指定する場合は、GetEncodingメソッドを使用する。
通常はusingを使用してストリームを生成する。そうすることでusingブロックを出たときのストリームのクローズ処理が自動で行われるようになる。

続きを読む

c# - 例外処理(try / catch / finally / throw)

例外処理

例外処理は他の言語と一緒。tryブロックで例外が発生した場合、発生した例外の種類が書かれたcatchブロックの処理が実行される。finallyブロックは、例外の発生の有無に関わらず実行される。
例外の種類分けを行わない場合は、Exceptionでcatchする。

続きを読む