在特定文件夹上创建具有今天日期的新文件夹

时间:2014-03-06 12:48:21

标签: c#

我正在尝试使用特定给定路径上的今天日期创建一个新文件夹:

string LocalDirectory = Directory.CreateDirectory(
    DateTime.Now.ToString("I:\\test\\final test\\snaps\\dd-MM-yyyy")); 

但是我收到了这个错误:

  

无法将类型'System.IO.DirectoryInfo'隐式转换为'string'

7 个答案:

答案 0 :(得分:3)

根据the documentation for Directory.CreateDirectory,CreateDirectory返回一个DirectoryInfo对象,而不是一个字符串。

这样做:

DirectoryInfo localDirectory = Directory.CreateDirectory(...

或者这个:

var localDirectory = Directory.CreateDirectory(...

(基本上会做同样的事情)

答案 1 :(得分:1)

代码可以写成:

String Todaysdate = DateTime.Now.ToString("dd-MMM-yyyy");
if(!Directory.Exists("I:\\test\\final test\\snaps\\" + Todaysdate)
{
  Directory.CreateDirectory("I:\\test\\final test\\snaps\\" + Todaysdate); 
}

答案 2 :(得分:0)

Directory.CreateDirectory返回DirectoryInfo非字符串

你可以尝试这样的事情

DirectoryInfo LocalDirectory = Directory.CreateDirectory(string.Format("I:\\test\\final test\\snaps\\{0}-{1}-{2}", DateTime.Now.Day, DateTime.Now.Month, DateTime.Now.Year));

将路径作为字符串

string strLocalDir = LocalDirectory.FullName; 

答案 3 :(得分:0)

以下是创建以今天日期命名的新文件夹的最简单方法。

using System;


namespace CreateNewFolder
{
    class Program
    {
        static void Main(string[] args)
        {
            string Todaysdate = DateTime.Now.ToString("-dd-MM-yyyy-(hh-mm-ss)");

            {
                Directory.CreateDirectory("c:/Top-Level Folder/Subfolder/Test" + Todaysdate);
            }
        }
    }
}

新文件夹名称的输出:

<强> 试验02-05-2018-(02年11月5日)

为了清楚起见,我将小时,分钟和秒钟放在一些括号内。 您可以取出日期的任何部分,仅返回要调用文件夹的时间/日期部分。如果您不想将其称为“Test-02-05-2018-(11-05-02)”,而只是将今天的日期作为名称;比如“02-05-2018”,然后从“CreateDirectory”行中删除“Test”,但在-Subfolder /和右引号之间留一个空格。像这样:

Directory.CreateDirectory("c:/Top-Level Folder/Subfolder/ " + Todaysdate);

请注意,我在日期参数之间添加了一个连字符。这只是日期的可视分隔符,您也可以使用“空格”作为分隔符。

我知道这个字符串大约有4年了,但也许这会帮助另一个新手刚开始用C# 享受和分享。

答案 4 :(得分:0)

考虑到文化

var rootOutputDir = @"I:\test\final test\snaps";
var Todaysdate = DateTime.Now.ToString(CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern.Replace("/", "-"));
Directory.CreateDirectory(Path.Combine(rootOutputDir, Todaysdate));

答案 5 :(得分:0)

string path = Server.MapPath(@"/Content/");             
path = Path.Combine(path,DateTime.Now.ToString('ddmmyyyy'));
if (!Directory.Exists(path))
  {
     Directory.CreateDirectory(path);
  }

答案 6 :(得分:0)

我想创建年份文件夹,然后在年份文件夹中创建月份。 这是对我有用的东西:

            public void CreateDirectory()
            {
            string strArchiveFolder = (@"\\fullpath" + DateTime.Now.Year.ToString() + "\\" +
                                  DateTime.Now.Month.ToString());
            if (!Directory.Exists(strArchiveFolder))
            {
            Directory.CreateDirectory(strArchiveFolder);
            }