进程无法访问文件';C: PCToMoveprint.pcl';因为它正被另一个进程使用.Windo

本文关键字:进程 Windo 因为 另一个 访问 文件 PCToMoveprint pcl | 更新日期: 2023-09-27 18:26:54

我有一个名为PCLtoMove的文件夹。我已在此文件夹中应用filewatcherSystem将文件从此文件夹移动到另一个文件夹。当我第一次启动windows服务时,它运行良好,但从下一次开始,它会出现异常-

进程无法访问文件"C:''PCLtoMove''fileName.pcl",因为另一个进程正在使用该文件。

我移动文件的代码是-

 private void SavionFileWatcher_Created(object sender, System.IO.FileSystemEventArgs e)
    {
        try
        {
            string sourcePath = e.FullPath;
            string destination = ConfigurationManager.AppSettings["destination"] + e.Name;
            File.Move(sourcePath, destination);
        }
        catch (Exception ex)
        {
            this.EventLog.WriteEntry(ex.Message, EventLogEntryType.Information);
        }
    }

请告诉我我做错了什么。

进程无法访问文件';C: PCToMoveprint.pcl';因为它正被另一个进程使用.Windo

我通过在上面的代码中添加以下代码得到了解决方案。它确认文件已完全移动或创建。

 FileStream fs = new FileStream(sourcePath, FileMode.Open, FileAccess.ReadWrite);
                    fs.ReadByte();
                    fs.Seek(0, SeekOrigin.Begin);
                    fs.Dispose();
                    File.Move(sourcePath,destination);
                       break;