【发布时间】:2015-08-10 05:56:50
【问题描述】:
我有一个代码来创建新文件夹并使用 FileSystemWatcher 将文件移动到该文件夹。但是它给出了以下错误。
System.IO.IOException:进程无法访问该文件,因为它 正在被另一个进程使用。在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
在 System.IO.__Error.WinIOError() 在 System.IO.File.Move(String 源文件名,字符串 destFileName) 在 FolderWatcher.Program.ProcessRenewalFolder(对象发件人, FileSystemEventA rgs e)
以下是代码
'private static void ProcessRenewalFolder(object sender, FileSystemEventArgs e)
{
Console.WriteLine("Renewal Received.... ");
DirectoryInfo d = new DirectoryInfo(@"E:\SCN_DOCS\RENEWAL\");
DirectoryInfo dest = new DirectoryInfo(@"E:\QUEUED_SCN_DOCS\RENEWAL\");
if (!d.Exists)
{
return;
}
FileInfo[] Files = d.GetFiles("*.pdf");
string jobNo = "";
string branchCode = "";
foreach (FileInfo file in Files)
{
jobNo = file.Name;
DirectoryInfo newDir = null;
if (!Directory.Exists(dest.FullName + jobNo.ToUpper()))
{
System.IO.Directory.CreateDirectory(dest.FullName + jobNo.Substring(0, file.Name.LastIndexOf(".")).ToUpper());
}
Console.WriteLine(jobNo + " - " + branchCode);
try
{
File.Move(file.FullName, dest.FullName + jobNo.Substring(0, file.Name.LastIndexOf(".")).ToUpper() + "\\" + file.Name.ToUpper());
UpdateRenewal(jobNo.Substring(0, file.Name.LastIndexOf(".")).ToUpper());
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}'
请告诉我这是什么原因...
【问题讨论】:
-
您是否在其他地方打开了自己的文件而忘记关闭它?此消息是通用的并且经常具有误导性,因为有时是您的应用程序代码阻塞。
标签: c# ioexception locked