Мой английский sh не очень хорош, но я постараюсь вам помочь. Вы можете напрямую добавить свое приложение в реестр:
HKEY_CLASSES_ ROOT* \ shell
Затем создайте ключ:
CopyFiles
И еще ключ внутри:
команда
Результат будет выглядеть так:
HKEY_CLASSES_ ROOT* \ shell \ CopyFiles \ command
В командной клавише (По умолчанию) добавьте путь к вашему приложению, как он указывает на ваше приложение:
"c: \ folder \ anotherfolder \ VSProjects \ CopySelectedFileArg.exe" "% 1"
При щелчке правой кнопкой мыши любой тип файла вы получите возможность напрямую открыть в своем приложении. Допустим, у вас есть приложение формы, в файле program.cs вы добавляете:
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
string fileName = null;
fileName = args[0];
Application.Run(new Form1(fileName ));
}
и в форме1:
string filePath;
string DesPath =@"d:\a\b\";
public Form1(string fileName)
: this()
{
filePath= fileName;
string TheFileName=Path.GetFileName(filePath);
FileInfo fi = new FileInfo(filePath);
if (Directory.Exists(DesPath))
{
fi.CopyTo(DesPath + TheFileName, true);
}
}
У вас не будет ошибки при копировании или несколько файлов, просто убедитесь, что ваш целевой каталог существует. У вас может быть таймер, который закроет приложение, или вы просто сами нажмете кнопку закрытия.