public partial class Form1 : Form
{
string dirblank = "";
string fileblank = " ";
string[] sub;
int s = 0;
FolderBrowserDialog fbd = new FolderBrowserDialog();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
dirblank = "";
fileblank = " ";
listBox1.Items.Clear();
fbd.Description = "フォルダ指定";
fbd.RootFolder = Environment.SpecialFolder.Desktop;
fbd.SelectedPath = @"C:\Windows";
fbd.ShowNewFolderButton = true;
if (fbd.ShowDialog(this) == DialogResult.OK)
{
textBox1.Text = fbd.SelectedPath;
}
//指定ディレクトリの中のサブディレクトリを格納
string[] folder = System.IO.Directory.GetDirectories(fbd.SelectedPath, "*", System.IO.SearchOption.AllDirectories);
//指定ディレクトリの中のファイルを格納
string[] file1 = System.IO.Directory.GetFiles(fbd.SelectedPath, "*", System.IO.SearchOption.TopDirectoryOnly);
//指定ディレクトリ名を表示
string f = System.IO.Path.GetFileName(fbd.SelectedPath);
listBox1.Items.Add(f + "[フォルダ]");
//指定ディレクトリの中のファイルを表示させる
FileName(file1,folder);
}
//指定ディレクトリ、サブディレクトリの中のファイル名を表示させる処理
int x = 0;
private void FileName(string[] file, string[] folder)
{
//各ディレクトリにあるファイルの数だけ処理。
for (int i = 0; i < file.Length; i++)
{
//ファイル名を表示
file[i] = System.IO.Path.GetFileName(file[i]);
listBox1.Items.Add(fileblank + file[i] + "[ファイル]");
}
listBox1.Items.Add("");
for (int i = x; x < folder.Length; x++)
{
file = System.IO.Directory.GetFiles(folder[x], "*", System.IO.SearchOption.TopDirectoryOnly);
sub = Directory.GetDirectories(folder[x]);
folder[x] = System.IO.Path.GetFileName(folder[x]);
dirblank += " ";
fileblank = dirblank;
fileblank += " ";
listBox1.Items.Add(dirblank + folder[x] + "[フォルダ]");
x++;
FileName(file, folder);
}
}
}
}
ICAgIHB1YmxpYyBwYXJ0aWFsIGNsYXNzIEZvcm0xIDogRm9ybQogICAgewogICAgICAgIHN0cmluZyBkaXJibGFuayA9ICIiOwogICAgICAgIHN0cmluZyBmaWxlYmxhbmsgPSAiICAiOwogICAgICAgIHN0cmluZ1tdIHN1YjsKICAgICAgICBpbnQgcyA9IDA7CgogICAgICAgIEZvbGRlckJyb3dzZXJEaWFsb2cgZmJkID0gbmV3IEZvbGRlckJyb3dzZXJEaWFsb2coKTsKCiAgICAgICAgcHVibGljIEZvcm0xKCkKICAgICAgICB7CiAgICAgICAgICAgIEluaXRpYWxpemVDb21wb25lbnQoKTsKICAgICAgICB9CgogICAgICAgIHByaXZhdGUgdm9pZCBidXR0b24xX0NsaWNrKG9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBlKQogICAgICAgIHsKICAgICAgICAgICAgZGlyYmxhbmsgPSAiIjsKICAgICAgICAgICAgZmlsZWJsYW5rID0gIiAgIjsKCiAgICAgICAgICAgIGxpc3RCb3gxLkl0ZW1zLkNsZWFyKCk7CiAgICAgICAgICAgIGZiZC5EZXNjcmlwdGlvbiA9ICLjg5Xjgqnjg6vjg4DmjIflrpoiOwogICAgICAgICAgICBmYmQuUm9vdEZvbGRlciA9IEVudmlyb25tZW50LlNwZWNpYWxGb2xkZXIuRGVza3RvcDsKICAgICAgICAgICAgZmJkLlNlbGVjdGVkUGF0aCA9IEAiQzpcV2luZG93cyI7CiAgICAgICAgICAgIGZiZC5TaG93TmV3Rm9sZGVyQnV0dG9uID0gdHJ1ZTsKCiAgICAgICAgICAgIGlmIChmYmQuU2hvd0RpYWxvZyh0aGlzKSA9PSBEaWFsb2dSZXN1bHQuT0spCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHRleHRCb3gxLlRleHQgPSBmYmQuU2VsZWN0ZWRQYXRoOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAvL+aMh+WumuODh+OCo+ODrOOCr+ODiOODquOBruS4reOBruOCteODluODh+OCo+ODrOOCr+ODiOODquOCkuagvOe0jQogICAgICAgICAgICBzdHJpbmdbXSBmb2xkZXIgPSBTeXN0ZW0uSU8uRGlyZWN0b3J5LkdldERpcmVjdG9yaWVzKGZiZC5TZWxlY3RlZFBhdGgsICIqIiwgU3lzdGVtLklPLlNlYXJjaE9wdGlvbi5BbGxEaXJlY3Rvcmllcyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvL+aMh+WumuODh+OCo+ODrOOCr+ODiOODquOBruS4reOBruODleOCoeOCpOODq+OCkuagvOe0jQogICAgICAgICAgICBzdHJpbmdbXSBmaWxlMSA9IFN5c3RlbS5JTy5EaXJlY3RvcnkuR2V0RmlsZXMoZmJkLlNlbGVjdGVkUGF0aCwgIioiLCBTeXN0ZW0uSU8uU2VhcmNoT3B0aW9uLlRvcERpcmVjdG9yeU9ubHkpOwoKICAgICAgICAgICAgLy/mjIflrprjg4fjgqPjg6zjgq/jg4jjg6rlkI3jgpLooajnpLoKICAgICAgICAgICAgc3RyaW5nIGYgPSBTeXN0ZW0uSU8uUGF0aC5HZXRGaWxlTmFtZShmYmQuU2VsZWN0ZWRQYXRoKTsKCiAgICAgICAgICAgIGxpc3RCb3gxLkl0ZW1zLkFkZChmICsgIlvjg5Xjgqnjg6vjg4BdIik7CgogICAgICAgICAgICAvL+aMh+WumuODh+OCo+ODrOOCr+ODiOODquOBruS4reOBruODleOCoeOCpOODq+OCkuihqOekuuOBleOBm+OCiwogICAgICAgICAgICBGaWxlTmFtZShmaWxlMSxmb2xkZXIpOwogICAgICAgIH0KCiAgICAgICAgLy/mjIflrprjg4fjgqPjg6zjgq/jg4jjg6rjgIHjgrXjg5bjg4fjgqPjg6zjgq/jg4jjg6rjga7kuK3jga7jg5XjgqHjgqTjg6vlkI3jgpLooajnpLrjgZXjgZvjgovlh6bnkIYKICAgICAgICBpbnQgeCA9IDA7CiAgICAgICAgcHJpdmF0ZSB2b2lkIEZpbGVOYW1lKHN0cmluZ1tdIGZpbGUsIHN0cmluZ1tdIGZvbGRlcikKICAgICAgICB7CiAgICAgICAgICAgIC8v5ZCE44OH44Kj44Os44Kv44OI44Oq44Gr44GC44KL44OV44Kh44Kk44Or44Gu5pWw44Gg44GR5Yem55CG44CCCiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZS5MZW5ndGg7IGkrKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLy/jg5XjgqHjgqTjg6vlkI3jgpLooajnpLoKICAgICAgICAgICAgICAgIGZpbGVbaV0gPSBTeXN0ZW0uSU8uUGF0aC5HZXRGaWxlTmFtZShmaWxlW2ldKTsKICAgICAgICAgICAgICAgIGxpc3RCb3gxLkl0ZW1zLkFkZChmaWxlYmxhbmsgKyBmaWxlW2ldICsgIlvjg5XjgqHjgqTjg6tdIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGlzdEJveDEuSXRlbXMuQWRkKCIiKTsKCiAgICAgICAgICAgIGZvciAoaW50IGkgPSB4OyB4IDwgZm9sZGVyLkxlbmd0aDsgeCsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmaWxlID0gU3lzdGVtLklPLkRpcmVjdG9yeS5HZXRGaWxlcyhmb2xkZXJbeF0sICIqIiwgU3lzdGVtLklPLlNlYXJjaE9wdGlvbi5Ub3BEaXJlY3RvcnlPbmx5KTsKICAgICAgICAgICAgICAgIHN1YiA9IERpcmVjdG9yeS5HZXREaXJlY3Rvcmllcyhmb2xkZXJbeF0pOwogICAgICAgICAgICAgICAgZm9sZGVyW3hdID0gU3lzdGVtLklPLlBhdGguR2V0RmlsZU5hbWUoZm9sZGVyW3hdKTsKICAgICAgICAgICAgICAgIGRpcmJsYW5rICs9ICIgICI7CiAgICAgICAgICAgICAgICBmaWxlYmxhbmsgPSBkaXJibGFuazsKICAgICAgICAgICAgICAgIGZpbGVibGFuayArPSAiICAiOwogICAgICAgICAgICAgICAgbGlzdEJveDEuSXRlbXMuQWRkKGRpcmJsYW5rICsgZm9sZGVyW3hdICsgIlvjg5Xjgqnjg6vjg4BdIik7CiAgICAgICAgICAgICAgICB4Kys7CiAgICAgICAgICAgICAgICBGaWxlTmFtZShmaWxlLCBmb2xkZXIpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIH0KICAgIH0=