13章:ファイルとディレクトリの操作の作成 (C#)

    作成2013.04.14

     VBで作成したプログラムをC#言語に変換します。

  1. 参照元情報
     ファイルとディレクトリの操作の作成は(Visual Basic ガイド ツアー)
    「ファイルとディレクトリの操作」にジャンプする
     作成方法の詳細は上記を参照願います。


  2. ファイルとディレクトリの操作の作成の完成ファイル
     テキスト ファイルからデータを読み取るの作成の解説とおりに作業を実施すると、VBプロジェクトファイル群が完成しますが、C#言語に変換します。
     完成ファイルは以下からダウンロードできます。
     ダウンロード後は解凍してから使用してください。
      [ ファイルとディレクトリの操作の作成]をダウンロードする。
     解凍すると「13FileExplorer」フォルダーがあります。
    注(1)「13FileExplorer」フォルダーの「FileExplorer.sln」ファイルをダブルクリックすると「Express 2012 for Windows Desktop」が起動します。
    注(2)メニューの「ウインド」_「ウインドレイアウトのリセット」で標準に戻ります。
    注(3)「ソリューションエクスプローラ」ウインドウ内の「Form1.cs」をダブルクリックすると「デザイン」が表示されます。
    注(4)メニューの「表示」_「コード」を選択するとコードが表示されます。
    注(5)「FileExplorer.sln」の動作確認は「デバッグ」_「デバッグ開始」で実行します。デバッグ機能を用いて動作確認を行います。


  3. FileExplorer.slnの実行
    (1)「Express 2012 for Windows Desktop」のデバッグ機能を使用します。
    (2)「デバッグ」_「デバッグ開始」を選択します。
    (3)操作画面が表示されます。
    (4)実行ボタンを押します。
    (5)ファイルリストを作成するフォルダーを選択してOKボタンを押します。
    (6)保存場所と保存ファイル名を設定してOKボタンを押します。
    (7)指定ファイルにファイルリストが保存されます。


  4. 新規プロジェクトの作成
    (1)Form1のデザイン設定
     新規プロジェクトを作成すると「デザイナー」にはForm1が自動生成されます。Form1のデザイン設定はVBのForm1のコピー&ペーストで完成します。

    (2) Form1コード
     基本コードが自動生成されます。


  5. Form1の全コード
    using System;
    using System.Windows.Forms;
    using System.IO;
    using System.Collections.ObjectModel;
    using Microsoft.VisualBasic.FileIO;
    
    namespace FileExplorer
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private void browseButton_Click(object sender, EventArgs e)
            {
                int i;
                if (FolderBrowserDialog1.ShowDialog() == DialogResult.OK)
                {
                    ReadOnlyCollection fileNames = FileSystem.GetFiles(FolderBrowserDialog1.SelectedPath, Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "*.*");
                    String OutText = "Size:bytes " + "\t" + "Modified: " + "\t" + "File: " + "\r\n";
                    for (i = 0; i < fileNames.Count; i++)
                    {
                        System.IO.FileInfo thisFile = FileSystem.GetFileInfo(fileNames[i]);
                        OutText = OutText + thisFile.Length.ToString() + "\t" + thisFile.LastWriteTime.ToString() + "\t" + thisFile.FullName + "\r\n";
                    }
    
                    if (SaveFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        using (StreamWriter outfile = new StreamWriter(SaveFileDialog1.FileName))
                        {
                            outfile.Write(OutText);
                        }
                    }
                }
            }
        }
    }
    


  6. Form1コードの説明
    (1)using System.IO;はStreamReaderクラスを使用するのに必要です。
    (2)using System.Collections.ObjectModel;はReadOnlyCollectionクラスを使用するのに必要です。
    (3)using Microsoft.VisualBasic.FileIO;はFileSystemクラスを使用するのに必要です。
    (4)FolderBrowserDialog1.ShowDialog() はFolderBrowserDialogを開きます。
    (5)ReadOnlyCollection fileNames = FileSystem.GetFiles(FolderBrowserDialog1.SelectedPath, Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "*.*");は変数fileNamesをReadOnlyCollection型で生成し、初期値としてFolderBrowserDialogで選択したフォルダーに含まれる全てのファイルを設定します。
    (6)String OutText = "Size:bytes " + "\t" + "Modified: " + "\t" + "File: " + "\r\n";で表題を作成します。
    (7)System.IO.FileInfo thisFile = FileSystem.GetFileInfo(fileNames[i]);で変数thisFile情報を書き込みます。
    (8)OutText = OutText + thisFile.Length.ToString() + "\t" + thisFile.LastWriteTime.ToString() + "\t" + thisFile.FullName + "\r\n";でファイルリストを書き込みます。
    (11)SaveFileDialog1.ShowDialog() でSaveFileDialogを開きます。
    (12) using (StreamWriter outfile = new StreamWriter(SaveFileDialog1.FileName)){}で出力ファイルを開きます。
    (13)outfile.Write(OutText);データを書き出します。


    感想:
    (1)VBとC#で参照条件の設定が異なります。
    (2)コードの記述が若干異なるため、修正に手間がかかりました。
    (3)VBで使用可能なコードは、参照設定とusing設定とコード記述をきちんと行えば、C#での使用可能のようです。







14章:印刷とレポート (C#)に行く。

トップページに戻る。