Выходной файл задачи сценария пакета служб SSIS в новую папку - PullRequest
2 голосов
/ 07 февраля 2020

Я использую SSIS и задачу сценария в C#.

У меня есть FOR EACH L oop, который просматривает папку и назначает полный путь и имя файла для каждого найденного файла. переменная с именем FileNameFound, которая, в свою очередь, затем назначается переменной с именем filepath в задаче сценария.

У меня также есть параметр Project, в котором хранится выходной путь, он назначается для 'newFilepath' в рамках задачи «Сценарий».

Используя какой-то другой код, я зашифрую файл csv.

Суть в том, что мне нужен вывод в go в другую папку, отличную от того, где он был найден, но с тем же именем файла.

например,

  • find файл: c:\folder\test.csv
  • зашифровать и вывести на c:\folder\new folder\test.csv

Мне нужно newFilepath в качестве переменной $Project::CSV_OutputFolder + test.csv

Я пытаюсь включить GetFileNameWithoutExtension(String), но продолжать получать сообщение об ошибке:

Имя 'GetFileNameWithoutExtension' не существует в текущем контексте

Это мой код:

public void Main()
{
    // Get the filepath of the file that needs to be encrypted.  
    string filepath = Dts.Variables["FileNameFound"].Value.ToString();

    // build output path
    string newFilepath = Dts.Variables["$Package::$Project::CSV_OutputFolder"].Value.ToString() + GetFileNameWithoutExtension(Dts.Variables["FileNameFound"].Value.ToString())+ ".csv";

    // Get password from SSIS variable
    string encryptionKey = Dts.Variables["EncryptionKey"].ToString();

    // Create an encrypted copy of the file
    Encrypt(filepath, newFilepath, encryptionKey);

    // Close Script Task
    Dts.TaskResult = (int)ScriptResults.Success;
}

Чего мне не хватает?

Ответы [ 2 ]

2 голосов
/ 07 февраля 2020

Я получил это работает. Я изменяю For Each, чтобы просто получить имя файла, только затем изменил свой код:

public void Main()
{
    // Get the filepath of the file that needs to be encrypted. 
    string filepath = Dts.Variables["Unencrypted_Folder"].Value.ToString() + Dts.Variables["FileNameFound"].Value.ToString();

    // build output path
    string newFilepath = Dts.Variables["$Project::CSV_OutputFolder"].Value.ToString() + Dts.Variables["FileNameFound"].Value.ToString();

    // Get password from SSIS variable
    string encryptionKey = Dts.Variables["EncryptionKey"].ToString();

    // Create an encrypted copy of the file
    Encrypt(filepath, newFilepath, encryptionKey);

    // Close Script Task
    Dts.TaskResult = (int)ScriptResults.Success;
}
0 голосов
/ 07 февраля 2020
Path.GetFileNameWithoutExtension(Dts.Variables["FileNameFound"].Value.ToString()) 

как класс c в пространстве имен System.IO.

...