i have this code ...

namespace ConsoleApplication1
{
    class watchmove
    {
        private static string myString = string.Empty;

        static void Main(string[] args)
        {
            myString = System.Configuration.ConfigurationSettings.AppSettings["DestDir"];

            
            Run();
        }

        [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
        public static void Run()
        {
            string[] args = System.Environment.GetCommandLineArgs();

            // Create a new FileSystemWatcher and set its properties.
            FileSystemWatcher watcher = new FileSystemWatcher();
            
            string test1 = System.Configuration.ConfigurationSettings.AppSettings["SourceDir"];
            string filetype = System.Configuration.ConfigurationSettings.AppSettings["FileType"];
            string filetype2 = System.Configuration.ConfigurationSettings.AppSettings["FileType2"];
            
            watcher.Path = test1;//args[1];
            /* Watch for changes in LastAccess and LastWrite times, and
               the renaming of files or directories. */
            watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
               | NotifyFilters.FileName | NotifyFilters.DirectoryName;
            // Only watch text files.
            watcher.Filter = filetype;
            // Add event handlers.
            //watcher.Changed += new FileSystemEventHandler(OnChanged);
            watcher.Created += new FileSystemEventHandler(OnChanged);
            //watcher.Deleted += new FileSystemEventHandler(OnChanged);
            //watcher.Renamed += new RenamedEventHandler(OnRenamed);

            // Begin watching.
            watcher.EnableRaisingEvents = true;

            // Wait for the user to quit the program.
            Console.WriteLine("Press \'q\' to quit the sample.");
            while (Console.Read() != 'q') ;
        }

        // Define the event handlers.
        private static void OnChanged(object source, FileSystemEventArgs e)
        {
            // Specify what is done when a file is changed, created, or deleted.
            Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
            Console.WriteLine("File: " + e.Name + " " + e.ChangeType);
            Console.WriteLine("Folder:" + Path.GetDirectoryName(e.FullPath));

            string fileName = e.Name;    // set the file name to the name of the file found in the folder
            string sourcePath = Path.GetDirectoryName(e.FullPath); //the source path is the same as the folder being monitored
            string targetPath = myString;  // string that has destination address on it (global variable)

            // Use Path class to manipulate file and directory paths.
            string sourceFile = System.IO.Path.Combine(sourcePath, fileName); // creates directories
            string destFile = System.IO.Path.Combine(targetPath, fileName);

            // To copy a folder's contents to a new location:
            // Create a new target folder, if necessary.
            if (!System.IO.Directory.Exists(targetPath))
            {
                System.IO.Directory.CreateDirectory(targetPath);
            }

            // To copy a file to another location and 
            // overwrite the destination file if it already exists.
            System.IO.File.Copy(sourceFile, destFile, true);
            
            if (System.IO.Directory.Exists(sourcePath))
            {
                string[] files = System.IO.Directory.GetFiles(sourcePath);

                // Copy the files and overwrite destination files if they already exist.
                foreach (string s in files)
                {
                    //Use static Path methods to extract only the file name from the path.
                    fileName = System.IO.Path.GetFileName(s); //**change this back to e.name if its only one file you want to copy and not all of them

                    destFile = System.IO.Path.Combine(targetPath, fileName);
                    System.IO.File.Copy(s, destFile, true);     // **change 's' back to sourcefile to copy just one file over!
                }
            }
            else
            {
                Console.WriteLine("Source path does not exist!");
            }

            
        }

        
    }
}

it works great for copying the files in a folder once the a certain file comes in, but i need it to only copy files that come in on the date on that day. eg only copy files with todays date.

You have a lot of dates with files -- created, modified, and accessed.

private void button4_Click(object sender, EventArgs e)
    {
      FileInfo fi = new FileInfo(@"C:\picture.bmp");
      Console.WriteLine(fi.LastAccessTime);
      Console.WriteLine(fi.LastWriteTime);
      Console.WriteLine(fi.CreationTime);
      if (fi.CreationTime.Date.Equals(DateTime.Today.Date)) //file was created today
      {
        //do stuff
      }
    }

To iterate a directory use this approach:

private void button4_Click(object sender, EventArgs e)
    {
      DirectoryInfo di = new DirectoryInfo(@"C:\");
      FileInfo[] files = di.GetFiles("*.*");
      foreach (FileInfo file in files)
      {
        FileInfo fi = new FileInfo(@"C:\picture.bmp");
        Console.WriteLine(fi.LastAccessTime);
        Console.WriteLine(fi.LastWriteTime);
        Console.WriteLine(fi.CreationTime);
        if (fi.CreationTime.Date.Equals(DateTime.Today.Date)) //file was created today
        {
          //do stuff
        }
      }
    }
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.