使用c#将文件移动到另一个文件夹

本文关键字:另一个 文件夹 移动 文件 使用 | 更新日期: 2023-09-27 18:08:22

我的源路径是C:'doc',其中我有pdf文件。我想做的是创建一个应用程序,它会经常检查C:'doc',然后自动将文件从该文件夹移动到另一个位置,而不是每次我想移动文件时单击应用程序。我想当一个文件来到c:'doc时,应用程序会发现文件或文件并自动将它们移动到例如C:'doc2'。我希望你能理解我的意思。

使用c#将文件移动到另一个文件夹

使用FileSystemWatcher来检测文件何时被添加到文件夹。

使用File.Move方法移动文件

也许是这样的?

public class Program
{
    public static void Main(string[] args)
    {
        var source = @"C:'doc";
        var target = @"C:'doc2";
        while (true)
        {
            using (var folderWatcher = new FileSystemWatcher(source))
            {
                folderWatcher.Filter = "*.*";
                Console.WriteLine("Watching " + source);
                var change = folderWatcher.WaitForChanged(WatcherChangeTypes.Created, 1000 * 60);
                if (!change.TimedOut)
                {
                    Console.WriteLine("File detected: " + change.Name);
                    Console.WriteLine("Moving to: " + target);
                    File.Move(Path.Combine(source, change.Name), Path.Combine(target, change.Name));
                }
            }
        }
    }
}

你可以创建一个在后台运行的Windows Service。你的工作是对它进行编程,使服务每x个时间间隔复制一次文件。

如本文档所示:

Microsoft Windows服务(以前称为NT服务)允许您创建在其自己的Windows会话中运行的长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动,并且不显示任何用户界面。

所以你的服务将运行而不需要任何人点击应用程序,它在后台运行。

这是一个由微软提供的关于如何创建这样一个服务的小教程。


另一个选择是使用计划任务。这允许您的程序在及时的基础上执行。这样,您就不必在程序中编写时间,因为计划任务已经为您完成了这些工作。

这里额外的一点是,您也可以手动运行任务。这允许在需要时立即执行,而不是只在这个编程的时间范围内执行服务。

你仍然需要编写你的应用程序,但是现在一个控制台应用程序就可以了,而不是创建一个服务。您可以使用File。移动函数,在另一个答案中解释。

有关如何创建计划任务的信息,请参阅文档。