C# 在c中创建目录后复制文件
我的File.Copyxxx,xxx,true引发了一个未处理的异常。我知道File.copy不允许我使用目录,但在我的情况下,我的文件名可以在每次循环时更改。我需要文件名与源文件夹中显示的文件名相同。这是我到目前为止所拥有的。有什么想法吗?我查看了MSDN,但它定义了我的问题,而不是解决方案。谢谢你的帮助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
//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是一个目录,而不是一个文件。以防你的水晶球出故障。我犯了一个错误,没有很好地校对我的文章。我输入了路径,但我应该说是目录。多亏了马格纳斯,我现在纠正了这一点,但你的讽刺非常有帮助…………先生,这就把它钉在了头上。非常感谢。