none
Работа с архиваторам WinRAR RRS feed

  • Вопрос

  • всем привет. Пищу приложение которое будет в автоматическом режиме архивировать папку в рар архив. Написал код, все отлично работает, но проблема в одном. В название файла, которое получает командная строка.Например:
    Код такой:

    string archivename = listBox_winrar.Items[0] + "\\" + Environment.MachineName + "_.rar ";
                        string sourcename = listBox_source.Items[i].ToString();
     
                        string command ="a  -p12345  -ep1 -agDDMMMYY " + archivename + sourcename;
     
                        process.StartInfo.CreateNoWindow = true;
                        process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                        process.StartInfo.Arguments = command;
                        process.StartInfo.FileName = "WinRAR";
                        process.Start();

    Если название папки с файлами будет New_Folder, то программа работает. А если в название присутствуют пробелы, New Folder, то архиватор показывает сообщение ошибки. Так как он понимает это как два файла: файл - New и файл - New, и не может найти (открыть) папку. Как решить проблему? Как сделать чтоб он поменял название папки целиком? или какие у вас предложение

    ! C:\Users\Dell\Desktop\107Oct13.rar: Невозможно открыть 2
    The system cannot find the file specified.
    ! C:\Users\Dell\Desktop\107Oct13.rar: Невозможно открыть 3\DELL-PC_.rar
    The system cannot find the path specified.
    ! C:\Users\Dell\Desktop\107Oct13.rar: Невозможно открыть C:\Users\Dell\Desktop\New
    The system cannot find the file specified.
    ! C:\Users\Dell\Desktop\107Oct13.rar: Невозможно открыть folder
    The system cannot find the file specified.

    хочу заметить что папки с такими названиями присутствуют

    7 октября 2013 г. 11:35

Ответы

  • нашел это в справочнике архива

    Если какой-либо компонент командной строки содержит пробелы, он должен быть заключён в двойные кавычки.

    Примеры
    Добавить папку "c:\latest data" в архив Info.rar 
    WinRAR a Info.rar "c:\latest data"

    пытаюсь вставить пробелы

    • Помечено в качестве ответа Frech871 7 октября 2013 г. 12:05
    7 октября 2013 г. 11:50
  • решено:

    string command = "a  -phercules  -ep1 -agDDMMMYY " + "\"" +  archivename + "\"" +" "+ "\"" + sourcename + "\"" ;

    • Помечено в качестве ответа Frech871 7 октября 2013 г. 12:05
    7 октября 2013 г. 12:04

Все ответы

  • нашел это в справочнике архива

    Если какой-либо компонент командной строки содержит пробелы, он должен быть заключён в двойные кавычки.

    Примеры
    Добавить папку "c:\latest data" в архив Info.rar 
    WinRAR a Info.rar "c:\latest data"

    пытаюсь вставить пробелы

    • Помечено в качестве ответа Frech871 7 октября 2013 г. 12:05
    7 октября 2013 г. 11:50
  • решено:

    string command = "a  -phercules  -ep1 -agDDMMMYY " + "\"" +  archivename + "\"" +" "+ "\"" + sourcename + "\"" ;

    • Помечено в качестве ответа Frech871 7 октября 2013 г. 12:05
    7 октября 2013 г. 12:04