Контекстное меню «Копировать папку» требует ввода пользователя - PullRequest
1 голос
/ 02 ноября 2010

Мы копируем много данных в нашей организации, и нам нравится использовать RoboCopyPlus для надежности и отчетов по электронной почте в конце.

Я добавил строку RoboCopyPlus в контекстное меню папки в реестре как:

cmd /c robocopyplus "%1" "C:\Data" *.* /s  

Но это означает, что я могу только скопировать папку в C: \ Data.

Как лучше всего запрашивать ввод данных пользователем или создавать переменную, которую я могу передать команде? В идеале я хотел бы, чтобы диалоговое окно браузера папок появлялось и спрашивало их местоположение, но, учитывая, что это, вероятно, усложняет вопрос, как я могу запросить ввод данных пользователем в оболочке?

1 Ответ

1 голос
/ 02 ноября 2010

Напишите простое приложение, чтобы пользователь выбрал файл, затем запустите RoboCopyPlus, используя выбранный путь.Добавьте запись в ваше контекстное меню, которое запускает это приложение.Вот пример на C # с использованием класса FolderBrowserDialog и Process.Start().

using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace RobocopyLauncher
{
    class Launcher 
    {
        static void Main(string[] args) 
        {
            FolderBrowserDialog browser = new FolderBrowserDialog();
            if (browser.ShowDialog() == DialogResult.OK && args.Length == 1)
            {
                // Not sure of the exact command but it would be 
                // something like this
                Process.Start(string.Format("robocopyplus \"{0}\" \"{1}\"", 
                    args[0], browser.SelectedPath);
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...