PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C#] Problem mit File.Copy()


minos5000
2009-01-13, 18:03:57
Hi,

ich wollte eigentlich nur schnell etwas mit File.Copy testen, aber jetzt hab ich massive Probleme, die Methode überhaupt zu verwenden.

Mein Code sieht folgendermaßen aus:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace FileCopyTest2
{
class Program
{
static void Main(string[] args)
{
string path = @"d:\log.txt";
string path2 = @"c:\";

try
{
File.Copy(path, path2);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
}
}


Wenn ich das Programm aufrufe erhalte ich die Fehlermeldung:

D:\>FileCopyTest2.exe
System.IO.DirectoryNotFoundException: Ein Teil des Pfades c:\ konnte nicht gefunden werden.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
bei FileCopyTest2.Program.Main(String[] args)


Mir ist wirklich schleierhaft, was hier falsch läuft. Ich hatte auch andere Pfade verwendet, aber überall das gleiche Ergebnis.


minos

Monger
2009-01-13, 19:27:07
File.Copy verlangt nicht etwa das Zielverzeichnis als zweites Argument, sondern tatsächlich den vollständigen Dateipfad. Ist ein bißchen kontraintuitiv, weil wir normalerweise annehmen dass eine Datei während des Kopiervorganges auch ihren Namen behält, aber so ist es nunmal.

Sprich:

String fileName = "Textdatei.txt";
String sourcePath = "C:\" & fileName;
String destPath = "D:\" & fileName;

File.Copy(sourcePath, destPath);

minos5000
2009-01-13, 21:55:56
Super, danke für den Tipp :)