簡體   English   中英

如何在用戶選擇的根文件夾中創建一個包含一些子文件夾的文件夾?

[英]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" 
    ));   
}

    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM