Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пример пояснительной записки.doc
Скачиваний:
14
Добавлен:
23.05.2015
Размер:
596.99 Кб
Скачать

3.4.2. Работа с консолью 7-Zip

Для работы с консолью 7-Zip используются следующие основные команды. Общий синтаксис программы 7z имеет вид:

7z <команда> <ключ> <имя_архива> <аргументы>

Команды:

a – задаёт добавление в архив. Если указанный архив не существует, он будет создан.

l – выводит содержимое архива.

t – производит тестирование архива.

x – извлекает файлы из архива. Если её не задать, файлы будут извлечены в текущую папку.

Ключи:

-p: задаёт пароль.

-sfx: указывает на создание самоизвлекающегося архива.

-t: задаёт тип архива, например: tzip, t7z, trar.

Аргументы содержит имена файлов, которые следует добавить/извлечь, или имя каталога в который надо извлекать. Если он не задан, используется текущий. Чтобы указать все файлы, нужно использовать маску *, а не *.* как в Windows.

Для запуска модуля из С# используется класс Process пространства имен System.Diagnostics.

Для запуста дочернего процесса необходимо указать путь к исполняемому файлу и аргументы командной строки:

using (Process pr = new Process())

{

pr.StartInfo.FileName = _7zPath;

pr.StartInfo.Arguments = ArgsCMD;

pr.StartInfo.UseShellExecute = false;

pr.Start();

pr.WaitForExit();

}

Здесь _7zPath – путь к исполняемому файлу 7z.exe, ArgCMD – строка аргументов командной строки.

3.4.2. Конфигурационный файл

Необходимые параметры для работы программы задаются в конфигурационном файле, который расположен в каталоге с программой по адресу etc/settings.conf.

Формат заполнения конфигурационного файла:

........

# ...комментарий...

<имя_параметра> = <значение_параметра> # ...комметрарий...

........

Для чтения параметров конфигурационного файла была написана функция, которая принимает имя необходимого параметра, производит поиск в конфигурационном файле и возвращает значение найденного параметра.

string GetParamValue(string ParName)

{

this.Open(); // Открывается файл, создается поток

string parValue;

string str;

try

{ // Построчное чтение файла

while ((str = sReader.ReadLine()) != null)

{

if (str.Length != 0 && str[0] != '#')

if (str.Length >= ParName.Length)

if (String.Compare(str, 0, ParName, 0, ParName.Length) == 0)

{

int i;

for (i = ParName.Length; i < str.Length && str[i] != '='; i++) ;

i++;

for (; i < str.Length && str[i] == ' '; i++) ;

int i0 = i;

for (; i < str.Length && str[i] != ' ' && str[i] != '\n' && str[i] != '\t' && str[i] != '\0' && str[i] != '#'; i++) ;

if (i > i0)

parValue = str.Substring(i0, i - i0);

else parValue = "UndefinedValue";

return parValue;

}

}

}

catch (Exception e)

{

Console.WriteLine(e.ToString());

}

parValue = "UndefinedValue";

return parValue;

}

3.4.3. Лог файл

Вся статистика работы модуля записывается в лог файл, который расположен в каталоге с программой по адресу var/actions.log.

Формат заполнения лог файла:

........

[ДД.ММ.ГГГГ ЧЧ:ММ:СС]: ...событие...

........

Для заполнения лог файла создана функция-обработчик, которой с помощью события отправляется строка для записи в лог файл. Обработчиком перед записью добавляется текущая дата и время.

public void LogWrite(string str)

{

this.Open();

Console.WriteLine("[{0}]: {1}", DateTime.Now, str);

sWriter.WriteLine("[{0}]: {1}", DateTime.Now, str);

sWriter.Flush();

}