トップページに戻る
次のC#のサンプルへ
前のC#のサンプルへ
7-11 C#ソースを実体参照に変換
C#のサンプル
csファイルのフルパスを引数として、
&を&
<を<
>を>
の実体参照に変換して、テキストファイルに保存します。
英語名称は、CSharpSourceHTMLEscape
ソース
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Windows.Forms;
class Program
{
const string PathEditor = @"C:\Program Files\EmEditor\EmEditor.exe"; //EmEditor
static void Main(string[] args)
{
string TargetFileFullPath = "";
if (args.Length > 0) {
TargetFileFullPath = args[0];
}
else {
MessageBox.Show("コマンドライン引数がありません");
return;
}
string[] mLineDataArr =
File.ReadAllLines(TargetFileFullPath, Encoding.GetEncoding("Shift_JIS"));
var WriteStrList = new List<string>();
foreach (string EachStr in mLineDataArr) {
string CurrLineData = EachStr;
CurrLineData = CurrLineData.Replace("&", "&");
CurrLineData = CurrLineData.Replace("<", "<");
CurrLineData = CurrLineData.Replace(">", ">");
WriteStrList.Add(CurrLineData);
}
//テキストファイルに保存
string FileName = DateTime.Now.ToString("yyyy年MM月dd日HH時mm分ss秒") + ".cs";
string SaveFullPath = Path.Combine(getWorkFolder(), FileName);
File.WriteAllLines(SaveFullPath, WriteStrList.ToArray(),
Encoding.GetEncoding("Shift_JIS"));
//テキストファイルを開く
var InsProcessStartInfo = new System.Diagnostics.ProcessStartInfo();
InsProcessStartInfo.FileName = PathEditor;
InsProcessStartInfo.Arguments = SaveFullPath;
InsProcessStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;
System.Diagnostics.Process.Start(InsProcessStartInfo);
}
//Dドライブが無かったらCドライブを使う
static private string getWorkFolder()
{
return System.IO.Directory.Exists(@"D:\WorkFile\") ? @"D:\WorkFile\" : @"C:\WorkFile\";
}
}