簡體   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