【问题标题】:Create Directory will multiple names passed by parameter C#创建目录将通过参数 C# 传递多个名称
【发布时间】:2016-09-20 13:38:03
【问题描述】:

我必须创建多个文件夹,例如

Directory.CreateDirectory("PATH\\" + _year + "filetosave.txt");  

"PATH\\" 是文件夹所在的完整路径,_year 是参数,"filetosave.txt" 是要保存在相应文件夹中的文件。
并且在运行时,它应该在包含要保存的相应文件的文件夹名称中创建带有年份的相应文件夹。

.CreateDirectory() 方法只接受string pathstring path, security access 作为参数。

  • 我们将如何创建这些参数化文件夹?
  • 如何检查指定目录是否已存在?

【问题讨论】:

  • 一般情况下,使用System.IO.Path.Combine构建路径。
  • Directory.CreateDirectory(Path.Combine("Path\\", DateTime.Now.Year, "filetosave.txt")); ?
  • 查看这个线程来创建一个同时创建目录和文件的方法。 stackoverflow.com/questions/3201598/… 如果您想创建多年,请将其放在 foreach 外观中或使用 Linq lambda。

标签: c# directory


【解决方案1】:
var path = Path.Combine("PATH\\", _year.ToString(), "filettosave.txt");
Directory.CreateDirectory(path);

Directory.CreateDirectory

在指定路径中创建所有目录和子目录,除非它们已经存在。

强调我的。

【讨论】:

  • @Sylverac--我认为正如你建议的Path.Combine() 方法,参数_year 应该是_year.ToString(),因为它只接受搅拌
【解决方案2】:

如评论,在尝试构建系统路径时使用Path.Combine

var root = "Path";
var year = "2016";
var filename = "filetosave.txt";

var path = Path.Combine(root, year, filename);
//  path = Path\2016\filetosave.txt

Directory.CreateDirectory(path);

【讨论】:

  • @Jonesopolis--如果岁月是循环过去的,那么我们将如何处理?因为年份不是每次都手动定义的!
  • 我不明白这会导致什么问题。您只需循环多年并为每个人创建一个目录。这是构建动态路径的示例。
  • 正确的意思是 var = year 如果在循环中作为参数传递,它将正常工作
  • @Jonesopolis--Path.Combine() 方法有一些无效参数。引发的错误。
  • 您可能将int year 作为参数传递。它需要字符串。我相信你能弄清楚。
【解决方案3】:

一般来说,使用System.IO.Path.Combine 来构建路径。它简化了这项任务。

string dir = System.IO.Path.Combine(rootPath, _year.ToString());
Directory.CreateDirectory(dir);
string file =  System.IO.Path.Combine(dir, "filetosave.txt");
FileStream fs = File.Create(file)

【讨论】:

    猜你喜欢
    • 2011-08-21
    • 2013-02-11
    • 2015-07-18
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多