C#通过 服务 复制共享目录的文件 代码
时间: 2024-09-24 17:26:45 浏览: 47
在C#中,如果你想通过Windows服务来复制共享目录的文件,你可以创建一个Windows Service,并利用System.IO命名空间中的类进行文件操作。下面是一个基本的示例,展示了如何在一个Windows Service中读取和复制文件:
```csharp
using System;
using System.ServiceProcess;
using System.IO;
public partial class FileCopyService : ServiceBase
{
private readonly string _sourceFolder = "\\\\服务器名\\共享目录\\源文件";
private readonly string _destinationFolder = @"C:\\目标目录\\新文件";
public FileCopyService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
CopyFilesAsync();
}
private async void CopyFilesAsync()
{
try
{
// 检查目录是否存在
if (!Directory.Exists(_destinationFolder))
Directory.CreateDirectory(_destinationFolder);
// 使用DirectoryInfo和FileInfo遍历源目录并复制文件
var sourceInfo = new DirectoryInfo(_sourceFolder);
foreach (var fileInfo in sourceInfo.GetFiles())
{
using (FileStream sourceStream = fileInfo.OpenRead())
{
await fileInfo.FullName.CopyToAsync(_destinationFolder + "\\" + fileInfo.Name, true);
}
}
Console.WriteLine("文件复制完成.");
}
catch (Exception ex)
{
Console.WriteLine($"复制文件时发生错误: {ex.Message}");
// 在实际应用中,可能需要记录日志或发送通知
}
}
protected override void OnStop()
{
base.OnStop();
// 在停止服务时,这里可以添加清理操作
}
}
阅读全文