C# 在c中创建目录后复制文件

C# 在c中创建目录后复制文件,c#,copy,C#,Copy,我的File.Copyxxx,xxx,true引发了一个未处理的异常。我知道File.copy不允许我使用目录,但在我的情况下,我的文件名可以在每次循环时更改。我需要文件名与源文件夹中显示的文件名相同。这是我到目前为止所拥有的。有什么想法吗?我查看了MSDN,但它定义了我的问题,而不是解决方案。谢谢你的帮助 //Get Data from Filename string[] files = System.IO.Directory.GetFiles(sourcePath, "Result*.xml

我的File.Copyxxx,xxx,true引发了一个未处理的异常。我知道File.copy不允许我使用目录,但在我的情况下,我的文件名可以在每次循环时更改。我需要文件名与源文件夹中显示的文件名相同。这是我到目前为止所拥有的。有什么想法吗?我查看了MSDN,但它定义了我的问题,而不是解决方案。谢谢你的帮助

//Get Data from Filename
string[] files = System.IO.Directory.GetFiles(sourcePath, "Result*.xml");
Regex date = new Regex(@"(?<month>[1-9]|[0-2])_(?<day>\d{2})_(?<year>\d{4})", RegexOptions.CultureInvariant);

foreach (string s in files)
{
    Match m = date.Match(s);
    if (m.Success)
    {
        //Pass Groups to String
        string month = m.Groups["month"].Value;
        string day = m.Groups["day"].Value;
        string year = m.Groups["year"].Value;

        //Create Dir
        var paths = new string[] { targetPath, year, month, day };
        string result = paths.Aggregate(Path.Combine);                        
        Directory.CreateDirectory(result);

        //Copy file
        File.Copy(s, result, true);    
    }
}

我认为您的错误在于没有在目标参数中包含文件名

字符串filename=Path.GetFileNames; 字符串newPath=Path.Combineresult,文件名; File.Copys,newPath,true;
我看看我的水晶球,猜猜你的例外是什么,还是你愿意告诉我们?File.Copy可能引发8种不同的异常。我想当你说File.Copy不允许你使用目录时,你会感到困惑,它绝对允许。您应该传递相关文件的完整路径,而不仅仅是名称。请看下面我的答案。另外,请学习阅读。如果您有,您会注意到结果…不能是您正在传递的目录。此外,它还有一些例子显示,使用一个路径,我不知道你从哪里得到的,它不允许一个路径。谢谢你tnw。我的例外是目标文件C:\Users\wike01\Desktop\sorted\2009\5\14是一个目录,而不是一个文件。以防你的水晶球出故障。我犯了一个错误,没有很好地校对我的文章。我输入了路径,但我应该说是目录。多亏了马格纳斯,我现在纠正了这一点,但你的讽刺非常有帮助…………先生,这就把它钉在了头上。非常感谢。