-1

我的 File.Copy(xxx,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);    
    }
}
4

1 回答 1

2

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

string filename = Path.GetFileName(s);
string newPath = Path.Combine(result, filename);
File.Copy(s, newPath, true);
于 2013-09-16T17:02:09.787 回答