Ich denke, es ist ziemlich offensichtlich im Titel; Ich möchte eine Datei kopieren, ohne auf das Ergebnis zu warten.Ist es möglich, eine Kopie einer (großen) Datei zu starten, ohne auf das Ergebnis zu warten?
functionaly möchte ich dies:
static void Main(string[] args)
{
string strCmdText = @"/C xcopy c:\users\florian\desktop\mytestfile.fil p:\";
System.Diagnostics.Process.Start("CMD.exe", strCmdText);
Console.WriteLine("Finished !");
}
Grundsätzlich mein Haupt-Thread nach wenigen Millisekunden freigegeben wird. Ich versuche, wie dies zu tun:
static void Main(string[] args)
{
var t = Task.Run(() => Copy(@"c:\Users\florian\Desktop\mytestfile.fil", "p:"));
}
private static void Copy(string source, string destination)
{
using (FileStream SourceStream = File.Open(source, FileMode.Open))
{
using (FileStream DestinationStream = File.Create(destination + source.Substring(source.LastIndexOf('\\'))))
{
SourceStream.CopyToAsync(DestinationStream);
}
}
}
Mein mytestfile.fil in meinem Zielordner erstellt wird, aber seine Größe ist 0kb.
Grüße,
In Ihrem Hauptfenster müssen Sie warten, bis die Aufgabe abgeschlossen ist (Task.Wait (...)). Andernfalls beendet die Konsole den Worker-Thread und beendet ihn. –
Also ... was ist mit dem ersten Ansatz falsch (mit 'cmd.exe' und' Process.Start')? Wenn es das ist, was du willst, was ist dann mit dir nicht? –
@samir Ja, aber ich will nicht warten ;-) – Florian