CopyFile (kernel32)
Last changed: -203.158.51.233

.
Summary

C# Signature:

[DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
static extern bool CopyFile(string lpExistingFileName, string lpNewFileName, bool bFailIfExists);

[DllImport("kernel32.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool CopyFile(
  [MarshalAs(UnmanagedType.LPWStr)]string lpExistingFileName,
  [MarshalAs(UnmanagedType.LPWStr)]string lpNewFileName,
  [MarshalAs(UnmanagedType.Bool)]bool bFailIfExists);

VB.NET Signature:

<DllImport("kernel32.dll", CharSet := CharSet.Unicode, CallingConvention := CallingConvention.StdCall, SetLastError := True)>
Shared Function CopyFile(<MarshalAs(UnmanagedType.LPWStr)> ByVal lpExistingFileName As String, <MarshalAs(UnmanagedType.LPWStr)> ByVal lpNewFileName As String, <MarshalAs(UnmanagedType.Bool)> ByVal bFailIfExists As Boolean) As <MarshalAs(UnmanagedType.Bool)> Boolean
End Function

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code - C#

    using System;
    using System.Runtime.InteropServices;

  namespace MyNamespace
  {
    class Program
    {
        [DllImport("kernel32.dll")]
        static extern bool CopyFile(string lpExistingFileName, string lpNewFileName, bool bFailIfExists);

        /*
        lpExistingFileName - Source File
        lpNewFileName - Destination File

        bFailIfExists - Whether or not CopyFile will overwrite lpNewFileName if the file exists.
        If true, CopyFile will return false if lpNewFileName is an existing file.
*/
        static void Main(string[] args)
        {
        string SourceFile = "C:\\MySourceFile.txt"; // This file must exist or else CopyFile will fail and return false.
        string DestinationFile = "C:\\MyDestinatioFile.txt";

        if (CopyFile(SourceFile, DestinationFile, true))
        {
            // Your code here if CopyFile succeeds
            Console.WriteLine("File successfully copied.");
        } else
        {
            // Your code here if CopyFile fails
            Console.WriteLine("File could not be copied. The file already exists.");
        }
        }
    }
  }

Alternative Managed API:

public static void System.IO.File.Copy(System.String sourceFileName , System.String destFileName , System.Boolean overwrite)

Documentation
CopyFile on MSDN site