21

現在、フォルダーのすべてのファイルを読み取ってコンソールに書き込むことができるようにコーディングする必要があります。以下に、ブラウザを使用してディレクトリから個々のファイルを選択するコードも示します。参照ボタンを使用してフォルダを選択する方法を知りたいです。

すべてのファイルをチェックするコード

  foreach(var path in Directory.GetFiles(@"C:\Name\Folder\"))
    {
       Console.WriteLine(path); // full path
       Console.WriteLine(System.IO.Path.GetFileName(path)); // file name
    }

ダイアログボックスを開くコード

OpenFileDialog fileSelectPopUp = new OpenFileDialog();
            fileSelectPopUp.Title = "";
            fileSelectPopUp.InitialDirectory = @"c:\";
            fileSelectPopUp.Filter = "All EXCEL FILES (*.xlsx*)|*.xlsx*|All files (*.*)|*.*";
            fileSelectPopUp.FilterIndex = 2;
            fileSelectPopUp.RestoreDirectory = true;
            if (fileSelectPopUp.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = fileSelectPopUp.FileName;
            }
4

3 に答える 3

42

まず、への参照を追加する必要がありますSystem.Windows.Forms

STAThread次に、メイン メソッドに属性を追加します。これは、プログラムがシングル スレッドであり、COM コンポーネント (システム ダイアログが使用する) を操作できることを示します。

FolderBrowserDialogその後、コンソール アプリケーションでのみ使用できます。

static class Program
{
    [STAThread]
    static void Main(string[] args)
    {
        FolderBrowserDialog fbd = new FolderBrowserDialog();
        if (fbd.ShowDialog() == DialogResult.OK)
        {
            foreach (var path in Directory.GetFiles(fbd.SelectedPath))
            {
                Console.WriteLine(path); // full path
                Console.WriteLine(System.IO.Path.GetFileName(path)); // file name
            }
        }


    }
}
于 2013-03-07T11:51:32.770 に答える
3

ユーザーFolderBrowserDialog

FolderBrowserDialog b = new FolderBrowserDialog();

if(b.ShowDialog() == DialogResult.OK)
{
  var folderName = b.SelectedPath;
}
于 2013-03-07T11:51:08.693 に答える