当前位置: 首页 > 知识库问答 >
问题:

将文件移动到新创建的目录时获取System.IO.IOException

陈君之
2023-03-14

System.io.IOException:进程无法访问该文件,因为它正被另一个进程访问。at system.io.__error.winioerror(Int32 errorCode,String maybeFullPath)
at system.io.__error.winioerror()at system.io.file.move(String sourceFileName,String destFileName)at 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());
            }
        }
    }'

请让我知道这件事的原因...

共有1个答案

萧繁
2023-03-14

在下面的文件夹路径中

DirectoryInfo d = new DirectoryInfo(@"E:\SCN_DOCS\RENEWAL\")

使用C#应用程序创建的任何新文件,如果是,则需要处理新创建文件的对象,例如

Bitmap bitmap = new Bitmap();
// your Image file creation code...
bitmap.Dispose();

根据您问题,您正在使用.pdf文件,所以如果您在移动文件之前在上面的文件夹中创建了任何新的pdf文件,那么您需要处理新创建的pdf文件的对象。

 类似资料:
  • Java是否提供了基于文件夹目录的API来完成此任务,或者我们是否需要递归地将每个文件复制到此路径?

  • 我有一个文件夹,其中有一个。dat文件和一个是。zip文件,我必须移动。将文件压缩到另一个目录 我有两个文件夹,一个是 请建议如何实现这一点,我现在所做的是。。。

  • 问题内容: 我是Linux新手。我正在尝试编写一个shell脚本,该脚本将 根据文件的扩展 名将 文件移动到某些文件夹 ,例如在我的downloads文件夹中,我具有混合文件类型的所有文件。我写了以下脚本 将文件添加到此文件夹后,如何使其自动运行?现在,我必须每次手动运行脚本。 还有一个问题,有什么办法可以合并这两个语句 成为一个陈述?我尝试使用(C编程“或”运算符)和逗号,但它们似乎不起作用。

  • 试图将文件与结构一起从子目录移动到父目录。并且无法使用完成此操作。为了说明这个问题,请参阅下面的目录结构。 我想通过Java模拟下面的move命令。 输出应该类似于 在此移动中,目录下的所有文件和目录都已移动到。 我曾尝试过这样做: 但是,这会导致抛出的出现异常,如果取出选项,则代码抛出。 这个问题有一个答案,用一个递归函数来解决这个问题。但在我的情况下,它将涉及进一步的复杂性,因为我甚至需要在新

  • 问题内容: 如何获取最新的文件名或添加到目录中的文件路径? 问题答案:

  • 问题内容: 我的目标是每当文件滚动到此滚动文件时,该文件也会移动到另一个目录,因此在原始目录中始终只有。这可能使用吗?还是默认库中的另一个appender ? 问题答案: 我想你的意思是来自Log4J 如果您使用版本> = 1.2.16和log4j-extras,则可以使用此版本 重要的是 但是您必须确保该文件夹(在此示例中存在