繁体   English   中英

使用相对路径复制文件

[英]Copy file using relative path

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

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

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

找不到路径“ F:\\ New folder”的一部分

执行应用程序时,当前目录将是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存在,因为这不会为您创建文件夹。

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

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

MSDN上的File.Copy

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

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

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

除非在路径中指定的目录已经存在或路径的某些部分无效,否则将创建该目录中指定的所有目录。 path参数指定目录路径,而不是文件路径。 如果目录已经存在,则此方法不执行任何操作。

// 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));
    }

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM