Какой самый простой способ обрабатывать несколько файлов - PullRequest
0 голосов
/ 27 мая 2009

Я пытаюсь запустить программу, перетаскивая несколько файлов в .exe, а затем отправляя exe-файлы в разные папки на основе правил и логики самой программы.

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

На компьютерах под управлением Microsoft Windows XP или позже, максимальная длина строка, которую вы можете использовать в команде подсказка 8191 символов. На компьютеры под управлением Microsoft Windows 2000 или Windows NT 4.0, максимум длина строки, которую вы можете использовать в командной строке 2047 символы.

что было бы самым минималистичным способом решения этой проблемы? Я хотел бы по возможности избегать запуска программы в фоновом режиме.

Ответы [ 4 ]

3 голосов
/ 27 мая 2009

Вместо того, чтобы перетаскивать файлы в «.exe», возможно, вы могли бы создать «горячую папку» для перетаскивания файлов в. Вам необходимо написать приложение для мониторинга этой папки (используя что-то вроде FileSystemWatcher ) и обрабатывать входящие файлы.

2 голосов
/ 15 июня 2009

Существует способ написать программу .net, которая просматривает определенную папку, используя класс FileSystemWatchter. Я написал пример кода для этого , называющего продукт нашей компании, но вы могли бы использовать скелет, чтобы делать то, что вы хотите.

Идея состоит в том, что вы указываете на папку и подписываетесь на определенные события в этой папке (файлы переименовываются, добавляются, удаляются и т. Д.), Чтобы при возникновении этих событий ваш код срабатывал. В промежутке ваша программа просто ждет.

Тогда вы могли бы просто сделать эту папку папкой на вашем рабочем столе, и когда вы добавляете в нее что-то, все происходит "волшебным образом".

A Решение Visual Studio 2005 также находится на сайте.

Надеюсь, это поможет.

1 голос
/ 05 июня 2009

Это не C #, но вы можете написать расширение Explorer Shell, чтобы добавить «Route File (s)» в контекстное меню по умолчанию, когда вы щелкаете правой кнопкой мыши по файлу или выбираете группу файлов (где угодно, не только контексты, в которых вы можете видеть свой исполняемый файл), так как этот API вероятно не ограничит вас ограничениями длины аргумента командной строки.

Там. Гладкий, и без фонового процесса. Единственным недостатком является то, что вы должны написать его как компонент COM.

0 голосов
/ 27 мая 2009

вы могли бы записать «данные» в файл и иметь файл в качестве аргумента?

...