Почему мое консольное приложение не работает с 25 или более аргументами? - PullRequest
4 голосов
/ 27 мая 2009

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

Программа отлично работает, но когда я выбираю более 25 файлов и помещаю их в свой .exe, я получаю сообщение об ошибке:

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

Если я удаляю только 24 файла из одного набора, он работает нормально.

Что я делаю не так?

Ответы [ 3 ]

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

В зависимости от вашей платформы у вас может быть максимальная длина командной строки. См. Здесь для получения дополнительной информации.

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

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

Число файлов, вызывающих превышение максимальной длины командной строки (и, следовательно, аргументов), вызывает эту ошибку?

1 голос
/ 27 мая 2009

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

...