DotNetZIp TargetInvocationException для.AddSelectedFiles

Я пытаюсь сжать список файлов из каталога на основе некоторых критериев, используя свойство выбора. Вот код

using (ZipFile zip = new ZipFile())
        {
            string selection = "ctime > " + DateTime.Now.AddHours(-12).ToString("yyyy-MM-dd-HH:mm:ss");
            zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
            zip.AddSelectedFiles(selection, LogFolder, "", true);
            if (zip.Entries.Count > 0)
            {

                zip.Name = ArchiveFile;
                zip.Save();
            }
        }

Как вы можете видеть, я пытаюсь заархивировать файлы, созданные за последние 12 часов в Logfolder. Файлы создаются в папке журнала все время, и они удаляются примерно через 20 часов после их создания, поэтому я пытаюсь заархивировать их с отметкой 12 часов, чтобы не потерять файлы и чтобы файлы не удалялись, когда я пытаюсь заархивировать их, Все же я все еще получаю System.Reflection.TargetInvocationException: Исключение было брошено целью вызова. ---> System.IO.DirectoryNotFoundException: не удалось найти часть пути '\core\e$\Program Files\Aspect Software\Unified IP\Logs\DBIServer\DBIServer[2013.11.05-12.41.11.263][569].журнал'.

Как видите, файл, который я пытаюсь заархивировать, был создан 2013-11-05 12:41, и время выполнения этого кода было более 12 часов спустя. Так почему я получаю это исключение? В любом случае файл не должен попадать в архив! Важно отметить, что часто код работает нормально и действительно работает правильно, архивируя только правильные файлы. Так что, возможно, ошибка связана с кодом, просматривающим все файлы в папке, даже если он не собирается их архивировать? Любая работа вокруг?

Вот и вся трассировка стека: Сообщение, выполненное от имени пользователя: FCFS\fcdbadmin. ... 10.50.4000.0 для 64-битной системы Copyright (C) Microsoft Corporation 2010. Все права защищены. Начато: 10:26:03 πμ Ошибка: 2013-11-06 10:29:37.76 Код: 0x00000001 Источник: DBIServer Описание: System.Reflection.TargetInvocationException: Исключение было сгенерировано целью вызова. ---> System.IO.DirectoryNotFoundException: не удалось найти часть пути '\core\e$\Program Files\Aspect Software\Unified IP\Logs\DBIServer\DBIServer[2013.11.05-12.41.11.263][569].журнал'. в System.IO.__Error.WinIOError(Int32 errorCode, String MaybeFullPath) в System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, логические includeFiles, логические includeDirs, SearchOption searchOptionory) в System.IO.Directory. (Строковый путь, String searchPattern, SearchOption searchOption) в System.IO.Directory.GetFiles(Строковый путь) в Ionic.Zip.ZipFile.AddOrUpdateDirectoryImpl(Строковое имя_каталога, действие String rootDirectoryPathInArchive, действие AddOrUpdateAction Ionic, метод логического уровня на уровне логических объектов в Boolean).ZipFile._AddOrUpdateSelectedFiles(String selectionCriteria, Строка directoryOnDisk, Строка directoryPathInArchive, булева recurseDirectories, булева wantUpdate) при Ionic.Zip.ZipFile.AddSelectedFiles(String selectionCriteria, Строка directoryOnDisk, Строка directoryPathInArchive, булева recurseDirectories) при ST_c13047ee91c340d78c1fbd7aa7c31ff9.csproj.ScriptMain.Main() --- Конец внутренней трассировки стека исключений --- в System.RuntimeM ethodHandle. InvokeMethodFast (Object target, Object[] arguments, SignatureStruct & sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) в System.Reflection.RuntimeMethodInfo.Invoke (Объектный объект, BindingFlags, invokeAttr, связывание, связывание объектов, параметры объекта, связывание объектов, объектная логика, объекты []).Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder Binder, параметры Object[], CultureInfo culture) в System.RuntimeType.InvokeMember (имя строки, BindingFlags bindingFlags, связыватель Binder, объектная цель, Object[] обеспечивающий параметр, параметр ] модификаторы, CultureInfo culture, String [] namedParams) в Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript() Ошибка конечной ошибки: 2013-11-06 10:30:57.80 Код: 0x00000001 Источник: CenterCord Описание: система.Reflection.TargetInvocationException: Исключение было сгенерировано целью вызова. ---> System.IO.DirectoryNotFoundException: не удалось найти часть пути '\core\e$\Program Files\Aspect Software\Unified IP\Logs\CenterCord\CenterCord-[2013.11.05-11.57.07.462][716].log". на System.IO. _Error.WinIOError (Int32 errorCode, String mayFullPath) в System.IO.Directory.InternalGetFileDirectoryNames (строковый путь, String userPathOriginal, String searchPattern, логические includeFiles, логические includeDirs, SearchOption searchOption String pathFile, StringGringing (). searchPattern, SearchOption searchOption) в System.IO.Directory.GetFiles(String path) в Ionic.Zip.ZipFile.AddOrUpdateDirectoryImpl(String directoryName, строковое действие rootDirectoryPathInArchive, AddOrUpdateAction, логический элемент RecurseF_ip_ip_Dip_File_Player_File_Player_File_Play_File.Ru.PB) String selectionCriteria, String directoryOnDisk, String directoryPathInArchive, Boolean recurseDirectories, Boolean wantUpdate) в Ionic.Zip.ZipFile.AddSelectedFiles(String selectionCriteria, String directoryOnDisk, String directoryPathInArchive. внутренней трассировки стека исключений --- в System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) в System.R... Выполнение пакета fa... Шаг не выполнен.

1 ответ

Решение

Оказывается, это был мой плохой результат. В пакете служб SSIS для "CreateDeploymentUtility" было установлено значение "Ложь", поэтому каждый раз, когда я развертывал пакет, изменения фактически не запускались на сервере. Библиотека работает нормально сейчас.

Другие вопросы по тегам