Call DLL API to move file : DLL « Windows « C# / CSharp Tutorial






using System;
using System.IO;
using System.Runtime.InteropServices;


    class Tester
    {
        [DllImport("kernel32.dll", EntryPoint = "MoveFile",ExactSpelling = false, CharSet = CharSet.Unicode,SetLastError = true)]
        static extern bool MoveFile(string sourceFile, string destinationFile);

        public static void Main()
        {
            ExploreDirectory(new DirectoryInfo("c:\\"));
        }
        private static void ExploreDirectory(DirectoryInfo dir)
        {
            string newDirectory = "newTest";
            DirectoryInfo newSubDir =dir.CreateSubdirectory(newDirectory);
            FileInfo[] filesInDir = dir.GetFiles();
            foreach (FileInfo file in filesInDir)
            {
                string fullName = newSubDir.FullName + "\\" + file.Name;
                file.CopyTo(fullName);
                Console.WriteLine(file.FullName);
            }
            filesInDir = newSubDir.GetFiles();
            int counter = 0;
            foreach (FileInfo file in filesInDir)
            {
                string fullName = file.FullName;

                if (counter++ % 2 == 0)
                {
                    Tester.MoveFile(fullName, fullName + ".bak");
                    Console.WriteLine("{0} renamed to {1}",fullName, file.FullName);
                }else{
                    file.Delete();
                    Console.WriteLine("{0} deleted.",fullName);
                }
            }
            newSubDir.Delete(true);
        }
    }








29.11.DLL
29.11.1.Compile to dll
29.11.2.Fiber
29.11.3.Invoke MessageBox in Dll
29.11.4.Using load library from Dll
29.11.5.Call DLL API to move file
29.11.6.Marshal a function from Dll to a delegate