Подтвердить что ты не робот

С# Скопировать файл в другое место с другим именем

Если выполняются определенные условия, я хочу скопировать файл из одного каталога в другой БЕЗ удаления исходного файла. Я также хочу установить имя нового файла на определенное значение.

Я использую С# и использую класс FileInfo. Хотя у него есть метод CopyTo. Это не дает мне возможность установить имя файла. И метод MoveTo, позволяя мне переименовать файл, удаляет файл в исходном местоположении.

Каков наилучший способ сделать это?

4b9b3361

Ответ 1

System.IO.File.Copy(oldPathAndName, newPathAndName);

Ответ 2

Вы также можете попробовать Копировать:

File.Copy(@"c:\work\foo.txt", @"c:\data\bar.txt")

Ответ 3

Используйте File.Copy вместо

например.

File.Copy(@"C:\oldFile.txt", @"C:\newFile.txt");

Вы можете называть его любым, что хотите, в newFile, и он переименует его соответствующим образом.

Ответ 4

Если вы хотите использовать только класс FileInfo попробуйте это

             string oldPath = @"C:\MyFolder\Myfile.xyz";
             string newpath = @"C:\NewFolder\";
             string newFileName = "new file name";
             FileInfo f1 = new FileInfo(oldPath);
           if(f1.Exists)
             {
                if(!Directory.Exists(newpath))
                {
                    Directory.CreateDirectory(newpath); 
                }
                 f1.CopyTo(string.Format("{0}{1}{2}", newpath, newFileName, f1.Extension));
             }

Ответ 5

Один из способов:

File.Copy(oldFilePathWithFileName, newFilePathWithFileName);

Или вы можете использовать метод FileInfo.CopyTo(), например:

FileInfo file = new FileInfo(oldFilePathWithFileName);
file.CopyTo(newFilePathWithFileName);

Пример:

File.Copy(@"c:\a.txt", @"c:\b.txt");

или

FileInfo file = new FileInfo(@"c:\a.txt");
file.CopyTo(@"c:\b.txt");

Ответ 6

StreamReader reader = new StreamReader(Oldfilepath);
string fileContent = reader.ReadToEnd();

StreamWriter writer = new StreamWriter(NewFilePath);
writer.Write(fileContent);

Ответ 7

File.Copy(@"C:\oldFile.txt", @"C:\newFile.txt", true);

Пожалуйста, не забудьте перезаписать предыдущий файл! Убедитесь, что вы добавили третий параметр. Добавив третий параметр, вы разрешите перезаписывать файл. Кроме того, вы можете использовать try catch для исключения.

С уважением, G

Ответ 8

Вы можете использовать метод Copy в классе System.IO.File.

Ответ 9

Самый простой способ, который вы можете использовать, заключается в следующем:

System.IO.File.Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName);

Это позаботится обо всем, что вы просили.

Ответ 10

Вы можете использовать метод File.Copy(oldFilePath, newFilePath) или другим способом, прочитать файл с помощью StreamReader в строку, а затем использовать StreamWriter для записи файла в место назначения.

Ваш код может выглядеть так:

StreamReader reader = new StreamReader("C:\foo.txt");
string fileContent = reader.ReadToEnd();

StreamWriter writer = new StreamWriter("D:\bar.txt");
writer.Write(fileContent);

Вы можете добавить код обработки исключений...