如何在用户选择的根文件夹中创建一个包含一些子文件夹的文件夹?
How to create a folder having some subfolders, in a root folder selected by the user?
我有这段代码可以在用户选择的路径中创建子文件夹
FolderBrowserDialog folderBrs = new FolderBrowserDialog();
if (folderBrs.ShowDialog() == DialogResult.OK)
{
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(folderBrs.SelectedPath;
dir.CreateSubdirectory("subfolder1");
dir.CreateSubdirectory("subfolder2");
}
它工作正常,但问题是 ir 使子文件夹没有主文件夹,所以你尝试了这个代码
FolderBrowserDialog folderBrs = new FolderBrowserDialog();
if (folderBrs.ShowDialog() == DialogResult.OK)
{
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(folderBrs.SelectedPath + textBox1.Text.Trim());
dir.CreateSubdirectory("subfolder1");
dir.CreateSubdirectory("subfolder2");
}
如您所见,唯一的区别是添加了文本框,但是当我键入名称时,它不会创建文件夹,它什么也没有,但奇怪的是,如果我选择一个现有的文件夹它创建了包含子文件夹的文件夹,但主文件夹的名称与我选择的现有文件夹的名称混合在一起
我做错了什么?有什么建议吗?
这里是更正的代码,假设所选路径存在:
if ( folderBrs.ShowDialog() == DialogResult.OK )
{
var dir = new DirectoryInfo(folderBrs.SelectedPath);
dir = dir.CreateSubdirectory(textBox1.Text.Trim());
dir.CreateSubdirectory("subfolder1");
dir.CreateSubdirectory("subfolder2");
}
我们为所选路径获取目录信息的实例。
接下来我们从文本框创建子文件夹。
然后我们在里面创建两个子文件夹。
让我们将所需的路径创建为 string
:
string dir = Path.Combine(folderBrs.SelectedPath + textBox1.Text.Trim(),
"subfolder1",
"subfolder2");
然后我们可以创建目录:
Directory.CreateDirectory(dir);
当然可以,您可以将两个片段合二为一:
using System.IO;
...
using (FolderBrowserDialog folderBrs = new FolderBrowserDialog()) {
if (folderBrs.ShowDialog() == DialogResult.OK)
Directory.CreateDirectory(Path.Combine(
folderBrs.SelectedPath + textBox1.Text.Trim(),
"subfolder1",
"subfolfer2"
));
}
我有这段代码可以在用户选择的路径中创建子文件夹
FolderBrowserDialog folderBrs = new FolderBrowserDialog();
if (folderBrs.ShowDialog() == DialogResult.OK)
{
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(folderBrs.SelectedPath;
dir.CreateSubdirectory("subfolder1");
dir.CreateSubdirectory("subfolder2");
}
它工作正常,但问题是 ir 使子文件夹没有主文件夹,所以你尝试了这个代码
FolderBrowserDialog folderBrs = new FolderBrowserDialog();
if (folderBrs.ShowDialog() == DialogResult.OK)
{
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(folderBrs.SelectedPath + textBox1.Text.Trim());
dir.CreateSubdirectory("subfolder1");
dir.CreateSubdirectory("subfolder2");
}
如您所见,唯一的区别是添加了文本框,但是当我键入名称时,它不会创建文件夹,它什么也没有,但奇怪的是,如果我选择一个现有的文件夹它创建了包含子文件夹的文件夹,但主文件夹的名称与我选择的现有文件夹的名称混合在一起
我做错了什么?有什么建议吗?
这里是更正的代码,假设所选路径存在:
if ( folderBrs.ShowDialog() == DialogResult.OK )
{
var dir = new DirectoryInfo(folderBrs.SelectedPath);
dir = dir.CreateSubdirectory(textBox1.Text.Trim());
dir.CreateSubdirectory("subfolder1");
dir.CreateSubdirectory("subfolder2");
}
我们为所选路径获取目录信息的实例。
接下来我们从文本框创建子文件夹。
然后我们在里面创建两个子文件夹。
让我们将所需的路径创建为 string
:
string dir = Path.Combine(folderBrs.SelectedPath + textBox1.Text.Trim(),
"subfolder1",
"subfolder2");
然后我们可以创建目录:
Directory.CreateDirectory(dir);
当然可以,您可以将两个片段合二为一:
using System.IO;
...
using (FolderBrowserDialog folderBrs = new FolderBrowserDialog()) {
if (folderBrs.ShowDialog() == DialogResult.OK)
Directory.CreateDirectory(Path.Combine(
folderBrs.SelectedPath + textBox1.Text.Trim(),
"subfolder1",
"subfolfer2"
));
}