2013-09-18 4 views
1

Есть ли способ переименовать файл excel, уже присутствующий еженедельно. При переименовании имя должно быть добавлено с датой начала и окончания. На самом деле я использовал File.Move для этой цели. , но он бросает мне не найденное исключение. Он работал отлично в первый раз, но теперь он показывает не найденное исключение. Может ли любой орган рассказать мне, как решить эту проблему или какой-либо другой метод переименовать файл excel. Я использовал задачу сценария пакета SSIS.Переименование файла excel

Ошибка, которую я получаю, заключается в следующем.

Error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileNotFoundException: Could not find file 'C:\windows\system32\old.xlsx'. File name: 'C:\windows\system32\old.xlsx'

+0

Если вы получите исключение, то есть что-то неправильно с вашим кодом. Если вы разместите свой код здесь, мы можем вам помочь. Вы можете запустить cmd с командой rename как аргумент –

ответ

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)

+0

Спасибо, что так много .. – user2710511

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) 
    { 

    } 
    } 
} 

В этом коде, если файл "SAMUEL.txt" на томе C уже существует, вы получите еще одно исключение. Чтобы решить эту проблему, перед попыткой File.Move вы можете проверить целевой путь с помощью метода File.Exists.

+0

поблагодарить u так много ... – user2710511

Смежные вопросы