読者です 読者をやめる 読者になる 読者になる

Code Log

プログラミングの勉強メモを残していきます。

C# フォルダを選択してテキストボックスにディレクトリ名を書き込む

C#

<スポンサーリンク>

フォルダを選択してテキストボックスにディレクトリ名を書き込む

private void txtDirOpenButton_Click(object sender, EventArgs e)
{
    FolderBrowserDialog fbd = new FolderBrowserDialog();
    if (fbd.ShowDialog() == DialogResult.OK)
    {
        dataDirBox.Text = fbd.SelectedPath;
    }
    
}


ツールボックスのダイアログを選択。OpenFileDialogをテキストボックス上にドラッグ&ドロップする。

ダイアログの選択モードが解除されない場合は、visual studioを再起動すればよかった。

ファイルを選択してテキストボックスにファイル名を書き込む

private void button1_Click(object sender, EventArgs e)
{
    DialogResult dr = excelFileOpenDialog.ShowDialog();
    if (dr == System.Windows.Forms.DialogResult.OK)
    {
        excelFileTextBox.Text = excelFileOpenDialog.FileName;
    }
}

テキストボックスの値をnullチェック

if(String.IsNullOrEmpty(dataDirBox.Text)) 
{
	MessageBox.Show("捜索対象ディレクトリを入力してください。");
	return;s
}

ディレクトリ内の特定suffixのファイル一覧を取得してファイル名表示

fileTextBox.Text = "";

string startDir = dataDirBox.Text;
var fileList = new DirectoryInfo(startDir).GetFiles("*.gz", SearchOption.AllDirectories);

System.Text.StringBuilder sb = new System.Text.StringBuilder();

foreach (var fileName in fileList)
{
	sb.Append(fileName + Environment.NewLine);

}

ディレクトリ内の特定suffixのファイル一覧のフルパスを表示

string startDir = dataDirBox.Text;
string[] fileList = Directory.GetFiles(startDir, "*.gz", SearchOption.AllDirectories);

System.Text.StringBuilder sb = new System.Text.StringBuilder();

for (var i = 0; i < fileList.Count(); i++)
{
	sb.Append(fileList[i] + Environment.NewLine);
}

gz圧縮ファイルの一覧を配列に詰め込み、ファイルを解凍する

/// <summary>
/// 選択したgzファイルを解凍します。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void decompressGzButton_Click(object sender, EventArgs e)
{
    string[] files = fileTextBox.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);

    for (var i = 0; i < files.Length; i++)
    {
        if (!String.IsNullOrEmpty(files[i]))
        {
            FileInfo fi = new FileInfo(files[i]);
            using (FileStream originalFileStream = fi.OpenRead())
            {
                string currentFileName = fi.FullName;
                string newFileName = currentFileName.Remove(currentFileName.Length - fi.Extension.Length);

                using (FileStream decompressedFileStream = File.Create(newFileName))
                {
                    using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress))
                    {
                        decompressionStream.CopyTo(decompressedFileStream);
                        MessageBox.Show("解凍しました:" + fi.Name);
                    }
                }
            }


        }
    }
}

“\n”を”\r\n”に変換する

String.Replace("\n", "\r\n").Replace("\r\r","\r");
string[] files = fileTextBox.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);

for (var i = 0; i < files.Length; i++)
{
if (!String.IsNullOrEmpty(files[i]))
{
    FileInfo fi = new FileInfo(files[i]);
    string convertFileName = fi.FullName + "_cv.txt"; //after convert text.
    StreamReader reader = new StreamReader(files[i], System.Text.Encoding.Default);
    StreamWriter sw = new StreamWriter(convertFileName, false, System.Text.Encoding.GetEncoding("shift_jis"));
    while (reader.Peek() >= 0)
    {
        string line = reader.ReadLine();
        sw.Write(line + "\r\n");
    }

    sw.Close();
}
}