使用c#将文件移动到另一个文件夹
本文关键字:另一个 文件夹 移动 文件 使用 | 更新日期: 2023-09-27 18:08:22
我的源路径是C:'doc'
,其中我有pdf文件。我想做的是创建一个应用程序,它会经常检查C:'doc'
,然后自动将文件从该文件夹移动到另一个位置,而不是每次我想移动文件时单击应用程序。我想当一个文件来到c:'doc
时,应用程序会发现文件或文件并自动将它们移动到例如C:'doc2'
。我希望你能理解我的意思。
使用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。移动函数,在另一个答案中解释。
有关如何创建计划任务的信息,请参阅文档。