C# Script File Chooser Example

If you find the code below useful, leave a comment.
Thanks.

/*
	2007-03-19 John Goodwin
	Wrote following code as example how to use C# script to show a dialog for a choice of files.
	You can get C# script from http://www.csscript.net/
	You can also add this file to a C# project, and compile it normally.
*/
using System;
using System.IO;
using System.Drawing;
using System.Windows.Forms;

class Script
{
	[STAThread]
	static public void Main(string[] args)
	{
		string path = @"C:\WINNT\";
		string filemask = "*.log";
		string selectedFile = GetMenuChoice(path, filemask);

		if (selectedFile != string.Empty)
		{
			MessageBox.Show("Selected : " + selectedFile);
		} else
		{
			MessageBox.Show("No selection");
		}
	}

	private static string GetMenuChoice(string path, string filemask)
	{
		ChoiceForm frmMain = new ChoiceForm();
		// load files
		DirectoryInfo diFolder = new DirectoryInfo(path);
		foreach (FileInfo file in diFolder.GetFiles(filemask))
		{
			frmMain.lbFiles.Items.Add(file.Name);
		}
		
		if (frmMain.ShowDialog() == DialogResult.OK)
		{
			return Convert.ToString(frmMain.lbFiles.SelectedItem);
		} else
		{
			return string.Empty;
		}
	}
	
	private class ChoiceForm : Form
	{
		private ListBox _lbFiles;
		private Button _btnOK;
		private Button _btnCancel;
		public ChoiceForm()
		{
			Size = new Size(300,300);
			StartPosition = FormStartPosition.CenterParent;
			_lbFiles = new ListBox();
			Controls.Add(lbFiles);
			lbFiles.Size = new Size(294,250);
			lbFiles.Anchor = (AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom);
			_btnOK = new Button();
			Controls.Add(btnOK);
			btnOK.Location = new Point(4,248);
			btnOK.DialogResult = DialogResult.OK;
			btnOK.Anchor = (AnchorStyles.Left | AnchorStyles.Bottom);
			btnOK.Text = "OK";
			btnCancel = new Button();
			Controls.Add(btnCancel);
			btnCancel.Location = new Point(80,248);
			btnCancel.DialogResult = DialogResult.Cancel;
			btnCancel.Anchor = (AnchorStyles.Left | AnchorStyles.Bottom);
			btnCancel.Text = "Cancel";
		}
		public ListBox lbFiles { get { return _lbFiles; } set { _lbFiles = value; } }
		public Button btnOK { get { return _btnOK; } set { _btnOK = value; } }
		public Button btnCancel { get { return _btnCancel; } set { _btnCancel = value; } }
	}
}

Leave a Reply

Your email address will not be published. Required fields are marked *