Copy file from one directory to another

后端 未结 5 417
执笔经年
执笔经年 2021-01-28 13:11

I am pretty new to C# and I am trying to get my program to copy a file from one location to another. The method I have is as below;

    private void CopyInstallF         


        
相关标签:
5条回答
  • 2021-01-28 13:44

    Try this :

    string path = @"C:\Program Files (x86)\your\path\main.txt";
    
    0 讨论(0)
  • 2021-01-28 13:46

    File.Copy requires the full filename for the destination.

    destFileName
    Type: System.String
    The name of the destination file. This cannot be a directory.

    If your input is just the folder name then you need to add the filename of the source file.

    private void CopyInstallFiles(object sender, EventArgs e)
    {
        // The correct syntax for a path name requires the verbatim @ char
        string sourceFile = @"F:\inetpub\ftproot\test.txt";
        string file = Path.GetFileName(sourceFile);
        string copyPathone = directoryImput.Text;
        System.IO.File.Copy(sourceFile, Path.Combine(copyPathone, file), true);
    }
    

    Note the final parameter = true to overwrite a file in the destination folder.

    As a side note, I suggest you to remove the textbox as input for a folder name but instead use the FolderBrowserDialog

    0 讨论(0)
  • 2021-01-28 13:47

    This is because in C# (and C++ and C and some other languages) string can contain special characters. Those characters are followed by '\'. So for example string:

    "\n"
    

    Will not show you \n This is special character called - new line. So, when you create path like that:

    "C:\Dir\file.txt"
    

    C# expects that there are two special characters: \D and \f. But there is no special characters like that. Thus the error.

    To put character '\' into string you have to double it, so:

    "\\n"
    

    would output \n

    The same is with paths: "C:\Dir\file.txt"

    C# has an alternative. You can have single '\' in path, but such a string must be followed by at sign (@):

    string properPath = @"C:\dir\file.txt";
    string properPath2 = "C:\\dir\\file.txt";
    string error = "C:\dir\file.txt"
    
    0 讨论(0)
  • 2021-01-28 13:53

    Look at your sourceFile string and be aware of using the \, which could be interpreted as escape character.

    To prevent this start your string with @

    string sourceFile = @"F:\inetpub\ftproot\test.txt";
    

    or

    string sourceFile = "F:\\inetpub\\ftproot\\test.txt";
    
    0 讨论(0)
  • 2021-01-28 13:55

    Either FIle.Copy Move it to new location like below

    new_file_path = file_path.Replace(".xls", " created on " + File.GetLastWriteTime(file_path).ToString("dd-MM-yyyy hh-mm-ss tt") + ".xls");
                            File.Move(file_path, new_file_path);
                            File.Delete(file_path);
    
    0 讨论(0)
提交回复
热议问题