Если все файлы, которые вы должны конвертировать, являются .php, вы можете использовать следующее, которое по умолчанию является рекурсивным:
for a in $(find . -name "*.php"); do iconv -f iso-8859-1 -t utf-8 <"$a" >new/"$a" ; done
Я полагаю, что ваши ошибки были связаны с тем, что ls -R
также производит вывод, который не может быть распознан iconv как правильное имя файла, что-то вроде ./my/dir/structure:
На основании , этого может показаться, что управляемые библиотеки DLL на самом деле не «загружены» в том смысле, в котором они находятся в традиционной структуре. Вместо этого IL отображается в память, и JIT просто захватывает то, что ему нужно, по мере продвижения (экономия необходимости поддерживать загрузку памяти для кода, который был выполнен, но больше не используется)
. Это объясняет, почему CF не предоставляет возможности для перебора загруженных dll. Относительно того, почему он не позволяет перебирать DLL, на которые есть ссылки , которые являются полностью выполненной временной конструкцией ...
В качестве возможного решения:
Используйте GetExecutingAssembly , чтобы получить активный код. Убедитесь, что это происходит в вашем исполняемом файле, чтобы он получил корневую сборку.
Напишите код, способный анализировать dll для манифеста, указывающего, на какие сборки ссылаются (это не должен быть управляемый код - неуправляемый API интроспекции, предоставляемый Microsoft, может даже сделать это для вас и спецификация формата dll является общедоступной и вряд ли радикально изменится в ближайшем будущем). Я предлагаю загружать библиотеки DLL в черный список из GAC (хотя в этом может быть нет необходимости).
Думаю, если для этого нет API, вы можете попробовать это ...
Помните, это не лучший способ сделать это ...
Ищите PInvoke вызывает в Windows CE и вызывает их, чтобы выяснить, какие библиотеки DLL загружены процессом.
Затем выполните итерацию по DLL, чтобы проверить, есть ли у них заголовок CLI. Или вы можете просто попробовать загрузить dll как сборку, если она загружается, значит, это сборка .NET, загруженная приложением.
Я знаю, что это неправильный способ сделать это, но это может сработать.