C#

スポンサーリンク
C#

C# Tips | 文字列処理:正規表現置換

はじめに 「正規表現置換」は“パターンで探して、一気に書き換える”技一致判定は「合っているかどうか」、抽出は「取り出す」でした。正規表現置換は、そのさらに一歩先——「合っているところを、別の形に書き換える」ための道具です。電話番号の一部をマ...
C#

C# Tips | 文字列処理:正規表現抽出

はじめに 「正規表現抽出」は“文字列の中から欲しいところだけをすくい取る”技一致判定(IsMatch)は「ルールに合っているか?」を見るだけでしたが、業務ではそれだけでは足りません。ログの 1 行から日時だけ取りたい。メッセージからユーザー...
C#

C# Tips | 文字列処理:正規表現一致判定

はじめに 「正規表現一致判定」は“文字列ルールをコードにする道具”業務システムでは、「この文字列はメールアドレス形式か?」「このコードは英数字だけか?」「この入力は3桁の数字か?」といった“ルールチェック”が頻繁に出てきます。そのときに強力...
C#

C# Tips | 文字列処理:文字列結合

はじめに 「文字列結合」は“バラした情報を一つの形にまとめる”技さっきまで「文字列分割」でバラす話をしてきましたが、業務ではその逆——「バラバラの情報を 1 本の文字列にまとめる」場面も同じくらい多いです。CSV の 1 行を組み立てる。ロ...
C#

C# Tips | 文字列処理:文字列分割

はじめに 「文字列分割」は“バラしてから意味をつける”ための基本技業務システムでは、「1本の文字列の中に、複数の値が詰め込まれている」ことがよくあります。CSV の 1 行、区切り文字付きの設定値、ユーザーが入力した「A,B,C」形式のリス...
C#

C# Tips | 文字列処理:ケバブケース変換

はじめに 「ケバブケース変換」は“フロントエンド世界との共通語”C# の世界では UserName(PascalCase)や userName(camelCase)が主流ですが、フロントエンドや一部の Web API の世界では、user-...
C#

C# Tips | 文字列処理:スネークケース変換

はじめに 「スネークケース変換」は“別世界の命名ルールをつなぐアダプタ”C# の世界では UserName や OrderId のような PascalCase/camelCase が主流ですが、業務で触るのは C# の世界だけじゃないですよ...
C#

C# Tips | 文字列処理:キャメルケース変換

はじめに 「キャメルケース変換」は“名前をそろえるためのルールエンジン”業務で C# を書いていると、「名前の書き方」をそろえたくなる場面がたくさん出てきます。JSON のプロパティ名、API のパラメータ名、フロント側とのインターフェース...
C#

C# Tips | 文字列処理:小文字変換

はじめに 「小文字変換」は“ゆるく受け入れて、きっちり比べる”ための道具大文字変換と同じくらい、業務コードでよく使うのが「小文字変換(Lower)」です。特に、こんな場面で出てきます。ユーザー入力を小文字にそろえてから比較したい。URL や...
C#

C# Tips | 文字列処理:大文字変換

はじめに 「大文字変換」は“比較とフォーマットを安定させるための基本技”文字列処理の中でも、「大文字変換(Upper)」はかなり頻出のテクニックです。特に業務システムでは、こんな場面でよく使われます。検索キーを大文字にそろえて比較したい。コ...
C#

C# Tips | 文字列処理:半角→全角

はじめに 「半角→全角」は“見た目とフォーマットをそろえるための技”さっきの「全角→半角」は、検索や比較を安定させるための前処理でした。一方で「半角→全角」は、どちらかというと「見た目」と「フォーマット」をそろえるための技です。帳票にきれい...
C#

C# Tips | 文字列処理:全角→半角

はじめに なぜ「全角→半角」が業務でこんなに大事なのか日本語の業務システムでは、「見た目は同じなのに、文字コードが違うせいで一致しない」という事故が本当に多いです。「A」と「A」、「1」と「1」、「@」と「@」――人間の目には同じに見えても...
C#

C# Tips | 文字列処理:空白トリム

はじめに 「空白トリム」は“バグの温床”を一気に減らすお掃除スキル業務システムで文字列を扱うとき、地味だけどめちゃくちゃ効くのが「空白トリム」です。ユーザー入力、CSV、設定ファイル、外部API――そこから来る文字列には、よくこういう“ノイ...
C#

C# Tips | 文字列処理:null安全文字列

はじめに 「null安全文字列」は“落ちないコード”への第一歩C# で業務コードを書いていると、かなりの頻度で出てくる例外があります。NullReferenceException――いわゆる「ヌルポ」です。「オブジェクト参照がオブジェクト ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル復元

はじめに 「ファイル復元」は“やらかした後に助けてくれる最後の味方”バックアップを取るだけでは、まだ片手落ちです。本当に大事なのは、「壊したあとに、元に戻せること」です。設定ファイルを上書きしてアプリが起動しなくなった。誤って最新データで古...
C#

C# Tips | ファイル・ディレクトリ操作:世代管理バックアップ

はじめに 「世代管理バックアップ」は“時間を巻き戻すための仕組み”バックアップを「とりあえずコピーしておく」だけで終わらせると、すぐにこうなります。バックアップフォルダがファイルだらけでカオスになる。どれが最新で、どれが古いのか分からない。...
C#

C# Tips | ファイル・ディレクトリ操作:バックアップ作成

はじめに 「バックアップ作成」は“事故前提”でコードを書く技術業務システムでファイルを扱うなら、「バックアップをどう残すか」は避けて通れません。人が操作をミスることもあるし、プログラムがバグることもあるし、外部システムから変なデータが来るこ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル名重複回避

はじめに なぜ「ファイル名重複回避」が必要になるのか業務でファイルを扱っていると、かなりの頻度でこういう状況に出会います。同じフォルダに同名ファイルがすでに存在している。ユーザーが同じ名前で何度もエクスポートしてくる。日次バッチが毎日同じフ...
C#

C# Tips | ファイル・ディレクトリ操作:禁則文字除去

はじめに 「禁則文字除去」は“事故る前の最後のガード”業務でファイル名やフォルダ名を「プログラム側で決める」こと、よくありますよね。ユーザーが入力したタイトルをそのままファイル名にしたい。日付やIDを組み合わせてログファイル名を作りたい。外...
C#

C# Tips | ファイル・ディレクトリ操作:パス安全化

はじめに 「パス安全化」は“ファイルを触る前の身だしなみ”業務でファイルを扱うコードを書くとき、本当によく出てくるのが「パス文字列」です。ユーザー入力、設定ファイル、外部システムから渡される値――それらをそのまま File.Open や D...
C#

C# Tips | ファイル・ディレクトリ操作:ZIP解凍

はじめに 「ZIP解凍」ができると“受け取ったファイルをさばける人”になる業務だと、相手から渡されるファイルがそのままではなく、ZIP で固められていることが本当に多いです。日次バッチの結果、帳票一式、マスタデータ、ログ、バックアップ。どれ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル圧縮(ZIP)

はじめに 「ZIP を扱える」と業務ツールの格が一段上がる業務でよくあるシーンです。複数ファイルを ZIP にまとめてメールで送りたい。バックアップを ZIP で固めて日付ごとに保存したい。外部システムから渡された ZIP を展開して中身を...
C#

C# Tips | ファイル・ディレクトリ操作:大容量ファイル逐次読み込み

はじめに 「全部読み込む」はもう卒業しよう大きなログファイル、巨大な CSV、数 GB のテキスト。こういうファイルを相手にするときに、File.ReadAllText や File.ReadAllLines を使うと、一瞬でメモリがパンパ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル監視(FileSystemWatcher)

はじめに 「ファイル監視」ができると“自動処理”の世界が一気に広がる業務システムを書いていると、こんな要望がよく出てきます。フォルダにファイルが置かれたら、自動で取り込んで処理したい。設定ファイルが書き換えられたら、アプリを再起動せずに反映...
C#

C# Tips | ファイル・ディレクトリ操作:ログローテーション

はじめに なぜ「ログローテーション」が必要になるのか業務システムを真面目に運用し始めると、必ずと言っていいほど「ログファイルがデカくなりすぎる問題」にぶつかります。1つのログファイルに延々と書き続けると、数GBになってエディタで開けない、バ...
C#

C# Tips | ファイル・ディレクトリ操作:TSV対応CSV

はじめに 「TSV対応CSV」とは“区切り文字を意識できる人”になること業務でファイル連携をしていると、こういうことが起きます。CSV ください、と言われたのに、実際に渡されるのはタブ区切り(TSV)。Excel で開くときはカンマ区切りよ...
C#

C# Tips | ファイル・ディレクトリ操作:CSV書き込み

はじめに 「CSV書き込み」ができると“外部連携の入口”が開くCSV 読み込みが「外部からデータをもらう入口」だとしたら、CSV 書き込みは「外部にデータを渡す出口」です。集計結果を CSV で出力して Excel で確認してもらう。別シス...
C#

C# Tips | ファイル・ディレクトリ操作:CSV読み込み

はじめに 「CSV読み込み」がちゃんと書けると一気に“業務っぽく”なる業務システムで一番よく出てくるファイル形式、それが CSV です。売上データ、マスタデータ、ログのエクスポート、外部システムとの連携――とりあえず CSV、という世界。だ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル結合

はじめに 「分割したなら、いつか必ず結合する」前回は「ファイル分割」でしたね。大きすぎるファイルを扱いやすくするために分けたなら、どこかのタイミングで「元に戻したい」「まとめて扱いたい」というニーズが必ず出てきます。ログを日別・サイズ別に分...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル分割

はじめに 「ファイル分割」は“逃げ”ではなく戦略業務をやっていると、だいたい一度はこうなります。ログがバカみたいに大きくなって、テキストエディタで開けない。外部システムから「1 ファイル 10MB までで送って」と言われる。巨大 CSV を...
C#

C# Tips | ファイル・ディレクトリ操作:テキスト一括置換

はじめに 「テキスト一括置換」は業務の“地味だけど超重要”作業業務システムを書いていると、こんなことがよく起きます。古いコードや設定ファイルのパスを一気に変えたい。ログファイルや CSV の中の特定の文字列をまとめて置き換えたい。テキストベ...
C#

C# Tips | ファイル・ディレクトリ操作:BOM付きUTF-8保存

はじめに なぜ「BOM付きUTF-8保存」が業務で大事なのか業務システムだと、こんな場面がよく出てきます。外部システムから「UTF-8(BOM付き)で送ってください」と仕様で指定されている。Excel や古いツールが「BOM付きUTF-8 ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイルエンコーディング判定

はじめに 「エンコーディング判定」が分からないとハマる世界業務でテキストファイル(CSV、ログ、設定ファイルなど)を扱うとき、ほぼ必ず出てくるのが「このファイル、何のエンコーディングで書かれているの?」問題です。UTF-8 だと思って読んだ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル文字数カウント

はじめに 「文字数カウント」は“なんとなく”で書くと危ない「ファイルの文字数を数える」――これも一見シンプルですが、実務では意外と奥が深いです。文字数でバリデーションしたい(例:1 万文字を超える説明文は NG)。レポートやログの統計を取り...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル行数カウント

はじめに 「行数を数える」だけなのに、なぜユーティリティにするのか「ファイルの行数カウント」って、一見すごく地味ですよね。でも業務では、ログ解析、CSV のレコード数チェック、インポート前の件数確認、進捗表示など、いろんな場面でめちゃくちゃ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル差分検出

はじめに 「違うかどうか」から一歩進んで「どこが違うか」前回の「ファイル内容比較」は、「同じか」「違うか」を true / false で判定する話でした。でも、業務ではそれだけでは足りない場面がよくあります。「どこが違うのか知りたい」「ど...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル内容比較

はじめに 「同じファイルか?」は業務でめちゃくちゃ重要業務システムを書いていると、こんなことを知りたくなる場面がよくあります。バックアップ前:「前回のバックアップと中身が同じなら、コピーをスキップしたい」同期処理:「サーバー上のファイルとロ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイルロック判定

はじめに なぜ「ファイルロック判定」が業務で重要なのか業務システムでは、「今このファイル、誰かが開いていないかな?」を気にしなければいけない場面がよくあります。たとえば、次のような状況です。他のプロセス(Excel、別のバッチ、ウイルススキ...
C#

C# Tips | ファイル・ディレクトリ操作:一時フォルダ作成

はじめに 一時フォルダは「作業用の安全な砂場」一時ファイルと同じくらい、業務でよく使うのが「一時フォルダ」です。大きな ZIP を展開して中身を処理するとき、複数ファイルを一時的に並べてからまとめてアップロードするとき、バッチ処理の中間成果...
C#

C# Tips | ファイル・ディレクトリ操作:一時ファイル作成

はじめに 一時ファイルは「使い捨ての作業机」業務システムを書いていると、「ちょっとだけデータを置いておきたい」場面がよく出てきます。たとえば、大きなファイルを分割して処理するときの中間結果、ダウンロード中の一時データ、圧縮前の展開ファイルな...
C#

C# Tips | ファイル・ディレクトリ操作:パス正規化

はじめに 「パス正規化」って何をすること?「パス正規化」という言葉、ちょっと堅いですよね。でもやっていることはシンプルで、「バラバラな書き方のパスを、同じルールで整える」ことです。同じ場所を指しているのに、文字列としては違うパスがたくさんあ...
C#

C# Tips | ファイル・ディレクトリ操作:パス結合

はじめに なぜ「パス結合」が業務でめちゃくちゃ大事なのかファイルやディレクトリを扱うコードを書くとき、ほぼ必ず出てくるのが「パスの結合」です。たとえば「ログフォルダのパス」と「ファイル名」からフルパスを作る、「ルートフォルダ」と「サブフォル...
C#

C# Tips | ファイル・ディレクトリ操作:絶対パス→相対パス

はじめに なぜ「絶対パス→相対パス」が必要になるのかさっきまでは「相対パス → 絶対パス」をやりましたが、現場ではその逆、「絶対パス → 相対パス」に変換したい場面もかなり多いです。例えばこんなケースです。設定ファイルに「環境に依存しないパ...
C#

C# Tips | ファイル・ディレクトリ操作:相対パス→絶対パス

はじめに なぜ「相対パス→絶対パス」が業務で重要なのか業務システムでは、設定ファイルやログ出力先などを「相対パス」で書くことがよくあります。たとえば logs\app.log や ..\config\settings.json のようなパス...
C#

C# Tips | ファイル・ディレクトリ操作:ディレクトリ一覧取得

はじめに なぜ「ディレクトリ一覧取得」が業務で重要なのか業務システムでは、ファイルだけでなく「フォルダ(ディレクトリ)」を扱う場面が非常に多いです。たとえば次のようなケースです。日付ごとにフォルダが作られており、最新フォルダだけ処理したいバ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル一覧取得

はじめに なぜ「ファイル一覧取得」が業務の入り口になるのか業務システムでファイルを扱う処理は、ほぼ必ず「まず対象フォルダのファイル一覧を取る」ところから始まります。たとえば「このフォルダの CSV を全部読み込む」「ログファイルを日付順に並...
C#

C# Tips | ファイル・ディレクトリ操作:指定拡張子検索

はじめに なぜ「指定拡張子検索」が業務で重要なのか業務システムでは、「.csv だけ集めてバッチ処理したい」「.log だけを圧縮したい」「.bak だけをバックアップフォルダに移動したい」といった、「特定の拡張子だけを対象にしたい」場面が...
C#

C# Tips | ファイル・ディレクトリ操作:空フォルダ削除

はじめに なぜ「空フォルダ削除」が業務で役に立つのか業務システムでファイルを扱っていると、ログやバックアップ、インポート・エクスポート用の一時フォルダなどがどんどん増えていきます。ファイルは削除しているのに、フォルダだけが階層深く残り続けて...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル属性変更

はじめに 「ファイル属性変更」ができると何が嬉しいのか業務でファイルを扱っていると、こんなことが起きます。「ユーザーがコピーしてきたファイルが読み取り専用で、削除できない」「ログファイルを隠しファイルにして、普段はユーザーに見せたくない」「...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル読み取り専用判定

はじめに なぜ「読み取り専用判定」が業務で効いてくるのか業務システムでファイルを扱うとき、「このファイル、書き込んでいいのか?」「上書きしようとしたら失敗した」「削除できないと思ったら読み取り専用だった」という場面、けっこうあります。特に、...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル更新日時取得

はじめに なぜ「ファイル更新日時取得」が業務で重要なのか業務システムでは、「前回処理してから更新されたファイルだけを再処理したい」「一定期間更新されていないログを削除したい」「外部システムからのファイルが本当に最新か確認したい」といった場面...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル作成日時取得

はじめに なぜ「ファイル作成日時取得」が業務で重要なのか業務システムでは、「一番新しいファイルだけ処理したい」「一定期間より古いファイルを削除したい」「いつ受信したファイルなのかをログに残したい」といった場面で、ファイルの作成日時を扱うこと...
C#

C# Tips | ファイル・ディレクトリ操作:ファイルサイズ取得

はじめに なぜ「ファイルサイズ取得」が業務で重要なのか業務システムでは、「受信したファイルが想定サイズ以上かチェックする」「空ファイル(サイズ 0)をエラーとして弾く」「バックアップやログの容量を集計してディスク使用量を監視する」など、ファ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル名一括変更

はじめに なぜ「ファイル名一括変更」が業務で効くのか業務システムや日々の運用では、「毎日出力されるファイルに連番を振りたい」「人が付けたバラバラな名前を、システムで扱いやすい規則的な名前に揃えたい」「外部から受け取ったファイル名を、自社ルー...
C#

C# Tips | ファイル・ディレクトリ操作:拡張子変更

はじめに なぜ「拡張子変更」が業務で役に立つのか業務システムでは、「処理前は .tmp として保存しておき、処理が成功したら .csv にリネームする」「受信したファイルを .dat から .bak に変えて退避する」「アプリ独自の拡張子を...
C#

C# Tips | ファイル・ディレクトリ操作:再帰的フォルダ削除

はじめに なぜ「再帰的フォルダ削除」は危険で、だからこそ重要なのか業務システムでは、「一時作業フォルダを丸ごと消す」「古いバックアップフォルダをまとめて削除する」「処理失敗時に作業領域をクリーンアップする」といった、「フォルダごと中身を全部...
C#

C# Tips | ファイル・ディレクトリ操作:再帰的フォルダコピー

はじめに なぜ「再帰的フォルダコピー」が業務で重要なのか業務システムでは、「あるフォルダ一式を丸ごとバックアップしたい」「テンプレートフォルダをそっくり複製して新しい案件用フォルダを作りたい」「旧サーバーから新サーバーへデータ構造をそのまま...
C#

C# Tips | ファイル・ディレクトリ操作:ディレクトリ削除

はじめに なぜ「ディレクトリ削除」は特に慎重さが必要なのか業務システムでは、古いバックアップフォルダを消す、一時作業用フォルダを片付ける、処理に失敗した作業領域をクリーンアップするなど、「フォルダごと削除する」場面が必ず出てきます。ただし、...
C#

C# Tips | ファイル・ディレクトリ操作:ディレクトリ作成

はじめに なぜ「ディレクトリ作成」が業務で重要なのか業務システムでは、ログ出力フォルダ、バックアップフォルダ、インポート用フォルダ、エクスポート用フォルダなど、「フォルダが存在していること」を前提にした処理が山ほどあります。ところが、サーバ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル削除

はじめに なぜ「ファイル削除」は慎重さが必要なのか業務システムでは、古いログを消す、一時ファイルを片付ける、処理に失敗した中間ファイルを削除するなど、「ファイルを消す」処理が必ず出てきます。ただし、コピーや移動と違って、削除は「基本的に元に...
スポンサーリンク