Ответ 1
System.IO.File.Copy(oldPathAndName, newPathAndName);
Если выполняются определенные условия, я хочу скопировать файл из одного каталога в другой БЕЗ удаления исходного файла. Я также хочу установить имя нового файла на определенное значение.
Я использую С# и использую класс FileInfo. Хотя у него есть метод CopyTo. Это не дает мне возможность установить имя файла. И метод MoveTo, позволяя мне переименовать файл, удаляет файл в исходном местоположении.
Каков наилучший способ сделать это?
System.IO.File.Copy(oldPathAndName, newPathAndName);
Вы также можете попробовать Копировать:
File.Copy(@"c:\work\foo.txt", @"c:\data\bar.txt")
Используйте File.Copy вместо
например.
File.Copy(@"C:\oldFile.txt", @"C:\newFile.txt");
Вы можете называть его любым, что хотите, в newFile, и он переименует его соответствующим образом.
Если вы хотите использовать только класс 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));
}
Один из способов:
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");
StreamReader reader = new StreamReader(Oldfilepath);
string fileContent = reader.ReadToEnd();
StreamWriter writer = new StreamWriter(NewFilePath);
writer.Write(fileContent);
File.Copy(@"C:\oldFile.txt", @"C:\newFile.txt", true);
Пожалуйста, не забудьте перезаписать предыдущий файл! Убедитесь, что вы добавили третий параметр. Добавив третий параметр, вы разрешите перезаписывать файл. Кроме того, вы можете использовать try catch для исключения.
С уважением, G
Вы можете использовать метод Copy в классе System.IO.File.
Самый простой способ, который вы можете использовать, заключается в следующем:
System.IO.File.Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName);
Это позаботится обо всем, что вы просили.
Вы можете использовать метод 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);
Вы можете добавить код обработки исключений...