使用相对路径复制文件

时间:2018-07-03 06:51:50

标签: c# copy relative-path

File.Copy(@"my program\\subfolder\\what i want to copy.txt", "C:\\Targetlocation");

如何使用相对路径将文本文件从一个文件夹复制到另一个文件夹。

4 个答案:

答案 0 :(得分:1)

要执行File.Copy,源和目标将是有效的文件路径。在您的情况下,目标是文件夹而不是文件。在这种情况下,您可能会遇到

之类的异常情况
  

找不到路径“ F:\ New文件夹”的一部分

在执行应用程序时,当前目录将是bin文件夹。您需要从此处指定相对路径。假设my program/subfolder是您解决方案中的文件夹,那么此代码将如下所示:

string sourcePath = "../../my program/subfolder/what i want to copy.txt";
string destinationPath = @"C:\Targetlocation\copyFile.txt"
File.Copy(sourcePath, destinationPath );

../会帮助您从当前目录后退一步。您还需要注意的另一件事是File.Copy方法中的第三个可选参数。通过为此参数传递true可以帮助您覆盖现有文件的内容。还请确保文件夹C:\Targetlocation存在,因为这不会为您创建文件夹。

答案 1 :(得分:0)

File.Copy(@"subfolder\\what i want to copy.txt", "C:\\Targetlocation\\TargetFilePath.txt");
  

sourceFileName和destFileName参数可以指定相对或   绝对路径信息。相对路径信息解释为   相对于当前工作目录。此方法不   参数中支持通配符。

File.Copy on MSDN

确保目标目录存在。您可以使用Directory.CreateDirectory

Directory.CreateDirectory("C:\\Targetlocation");

使用Directory.CreateDirectory(),您不必检查目录是否存在。来自文档:

  

创建任何路径中指定的所有目录,除非它们   已经存在或除非路径的一部分无效。路径   参数指定目录路径,而不是文件路径。如果   目录已经存在,此方法无效。

答案 2 :(得分:0)

// Remove path from the file name.
    string fName = f.Substring(sourceDir.Length + 1);

    try
    {
        // Will not overwrite if the destination file already exists.
        File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName));
    }

答案 3 :(得分:0)

您可以提供当前工作目录中的相对路径,可以通过Environment.CurrentDirectoy进行检查。

例如,如果当前工作目录为D:\ App,源文件位置为D:\ App \ Res \ Source.txt,目标位置为D:\ App \ Res \ Test \ target.txt,则您的代码段将是-

File.Copy(Res\\Source.txt, Res\\Test\\target.txt);