-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 に答える