1

有没有办法重命名每周已经存在的excel文件。重命名时,名称应附加开始和结束日期。实际上我已经使用 File.Move 来达到这个目的。但它向我抛出了文件未找到异常。它第一次运行良好,但现在显示文件未找到异常。任何人都可以告诉我如何解决这个问题或任何其他重命名excel文件的方法。我使用了 SSIS 包脚本任务。

我得到的错误如下。

错误:System.Reflection.TargetInvocationException:调用的目标已引发异常。---> System.IO.FileNotFoundException: 找不到文件'C:\windows\system32\old.xlsx'。文件名:'C:\windows\system32\old.xlsx'

4

2 回答 2

0

尝试这个:

using System;
using System.IO;

class Program
{
    static void Main()
    {
    //
    // Move a file found on the C:\ volume.
    // If the file is not found (SAM.txt doesn't exist),
    // then you will get an exception.
    //
    try
    {
        File.Move(@"C:\SAM.txt", @"C:\SAMUEL.txt"); // Try to move

    }
    catch (IOException ex)
    {

    }
    }
}

在这段代码中,如果 C 卷上的“SAMUEL.txt”文件已经存在,你会得到另一个异常。要解决此问题,您可以在尝试 File.Move 之前使用 File.Exists 方法检查目标路径。

于 2013-09-18T05:17:56.077 回答
0

您已经创建了一个参数 (Filname),但您没有使用它。

我会像这样改变你的方法:

public void Main()
{
        Dts.TaskResult = (int)ScriptResults.Success;
        ExcelRefresh((string)Dts.Variables["User::Destpath"].Value, "old.xlsx", "new.xlsx");
}

private void ExcelRefresh(string sourceDirectory, string oldFileName, string newFileName) //optionally add destDirectory if you really want to move the file
{
    File.Move(sourceDirectory +"\\" + oldFileName, sourceDirectory +"\\"+ newFileName);
}

并且不要忘记将您的代码包装到 Try...Catch (ExceptionHandling)

于 2013-09-18T17:29:49.273 回答