2011-09-18 18 views
20

Pracuję nad projektem, w którym chcę skopiować niektóre pliki w jednym katalogu do drugiego już istniejącego katalogu.Skopiuj plik do innego katalogu

Nie mogę znaleźć sposobu na skopiowanie z jednego folderu do drugiego. Mogę znaleźć plik kopii do nowego pliku lub katalogu do nowego katalogu.

Sposób, w jaki mam teraz ustawiony mój program, polega na skopiowaniu pliku i pozostawieniu go w tym samym katalogu, a następnie przeniesieniu tej kopii do żądanego katalogu.

Edytuj:

Dziękuję wszystkim. Wszystkie twoje odpowiedzi działały. Zrozumiałem, co zrobiłem źle, kiedy ustawiłem ścieżkę docelową, nie dodałem nazwy pliku. Wszystko działa teraz, dzięki za superszybkie odpowiedzi.

+9

Należy przyjąć odpowiedź ... –

Odpowiedz

5

Może

File.Copy("c:\\myFolder\\myFile.txt", "c:\\NewFolder\\myFile.txt"); 

?

+1

To nie skopiować plik * z jednego katalogu do innego *, co jest, co jest w pytaniu. – svick

+0

@svick jak twoja odpowiedź różni się od mojej? – evilone

+0

To nie jest teraz, ale było to przed edycją (spójrz na historię odpowiedzi). – svick

13

MSDN File.Copy

var fileName = "sourceFile.txt"; 
var source = Path.Combine(Environment.CurrentDirectory, fileName); 
var destination = Path.Combine(destinationFolder, fileName); 

File.Copy(source, destination); 
+0

Oprócz odpowiedzi [Jak: kopiować, usuwać i przenosić pliki i foldery (przewodnik programowania w języku C#)] (http://msdn.microsoft.com/en-us/library/cc148994.aspx) i [skopiuj wiele plików ] (http://www.dreamincode.net/forums/topic/55893-copy-multiple-files/) – Samich

+1

@Austin, sposób, w jaki obliczasz "cel podróży", nie ma sensu. 'source' to ścieżka do pliku źródłowego, a nie tylko nazwa pliku. – svick

+0

@svick: dobry połów. Pierwotnie miałem źródło po prostu nazwa pliku. –

26
File.Copy(@"someDirectory\someFile.txt", @"otherDirectory\someFile.txt"); 

działa dobrze.

24
string fileToCopy = "c:\\myFolder\\myFile.txt"; 
string destinationDirectory = "c:\\myDestinationFolder\\"; 

File.Copy(fileToCopy, destinationDirectory + Path.GetFileName(fileToCopy)); 
+0

Dobre wykorzystanie Path.GetFileName, dzięki! –

1

Ten pracował dla mnie:

string picturesFile = @"D:\pictures"; 
    string destFile = @"C:\Temp\tempFolder\"; 

    string[] files = Directory.GetFiles(picturesFile); 
    foreach (var item in files) 
    { 
     File.Copy(item, destFile + Path.GetFileName(item)); 
    } 
Powiązane problemy