FileSetAttrib: Проблема с рекурсией
Подскажите, пожалуйста, почему не срабатывает рекурсивное изменение атрибутов для всех файлов FARMENU.INI?
Код:
If Not FileSetAttrib("c:\farmenu.ini", "+HS", 1) Then Не знаю, где искать ошибку: либо неверно составил скрипт, либо ошибка внутри AUTOIT, либо что-то не так с файловой системой... |
такой вопросик нескромный. а зачем рекурсия для файла?
рекурсивная обработка папки применяется когда необходимо проставить тот или иной атрибут не только папке но и всем подпапкам и файлам внутри нее. убери флаг рекурсии и все окэ ;) |
snoitaleR,
Цитата:
Цитата:
kaster, Цитата:
|
У меня во многих папках есть локальное меню для FAR...
Я не хочу, чтобы данный файл был виден из проводника... Утилита attrib.exe справляется с данной задачей... Но удобнее было бы пользоваться скриптом AUTOIT... Могу утверждать наверняка, что все файлы FARMENU.INI на диске полностью доступны для текущего пользователя, единственное, для некоторых из них уже установлены атрибуты "скрытый" и "системный"... Я редактировал их совсем недавно стандартным инструментом FAR для работы с меню пользователя, никаких проблем... |
Цитата:
Выдержка из справки Цитата:
Нужно пройтись по всем папкам и подпапкам, найти нужный файл и если он удовлетворяет шаблону (farmenu.ini) ставить ему атрибут, без флага рекурсии, так как он (флаг) позволяет применить атрибут только к папке и всему ее содержимому включая подпапки и файлы |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Если очень интересно, то:
Код:
attrib +h +s farmenu.ini /s |
kaster, скорее всего, не в этом причина...
Я добавил "звездочку" перед именем файла - та же ошибка выпадает... Попробую снять атрибуты со всех файлов, потом посмотрю, после какого файла (перед каким файлом) происходит остановка... Я, кажется, понял логику ошибки, но с моей логикой эта логика не совместима... Если в одной из вложенных папок файл FARMENU.INI отсутствует, то выдается ошибка и в последующих папках смена атрибутов не производится... |
Да. пока не проверишь, не поймешь :teeth:
Цитата:
Цитата:
Цитата:
вобщем, snoitaleR, извини что ввел в заблуждение. действительно, как и говорит тебе гуру, у тебя условие стоит не очень хорошее, потому как не выполнится он может в самых ненужных местах, типа Цитата:
Цитата:
|
Не хотелось бы запускать attrib.exe из скрипта, когда есть встроенная функция...
Текстовые окна не очень приятны, кроме FAR... |
ну опять же можно просто заходить скриптом во все папки и проверять наличие нужного файла и выставления нужного атрибута при нахождении
|
Цитата:
Код:
If Not _FileSetAttribEx("c:\farmenu.ini", "+HS", 1) Then |
Цитата:
|
Цитата:
Код:
#include <File.au3> Код:
$start = TimerInit() |
Цитата:
|
Creat0R, kaster, полезные алгоритмы, спасибо...
Иногда бывает необходимость пробежать все папки на диске... |
Creat0R, проверь, пожалуйста, действительно ли ошибка внутри функции FileSetAttrib, чтобы я уже не сомневался и мог поставить отметку [решено]...
|
Цитата:
|
Пока будем использовать альтернативные варианты... :)
Будем считать тему решенной... |
|
Я как раз недавно читал ваше обсуждение, случайно...
Для меня регулярные выражения - это сверхъестественное... Могу только копировать... :) |
Время: 05:28. |
Время: 05:28.
© OSzone.net 2001-