Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
25.08.2021, 14:32
|
|||
---|---|---|---|
|
|||
Использование GetAttr |
|||
#18+
Win10 + Off10 Проверка существования файла "C:\Base\Журналы\Ошибки_заполнения.txt" для лога. Пробую давно описанную конструкцию If ((GetAttr(filePath) And VBA.vbDirectory) = VBA.vbDirectory) = True с On Error GoTo Может не быть самого файла и папки Журналы. Нет папки(ош.53) - MkDir, не файла (ош.76)- создаём файл. Проверяю. Удалён файл - GetAttr("C:\Base\Журналы") =16 (vbDirectory) GetAttr( "C:\Base\Журналы\Ошибки_заполнения.txt") - Ош.53 FileNot Found Удаляем Журналы GetAttr("C:\Base\Журналы") - Ош.53 FileNot Found GetAttr( "C:\Base\Журналы\Ошибки_заполнения.txt") - Ош.76 Path Not Found Если последний вывод понятен - нет папки, зачем искать файл, то предпоследний вывод не понятен. Вроде тоже должна быть ош.76? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.08.2021, 15:40
|
|||
---|---|---|---|
|
|||
Использование GetAttr |
|||
#18+
Я таку конструкцию и не видел еще.... пользуюсь FileScriptingObject Там все ясно-понятно true - false... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.08.2021, 16:40
|
|||
---|---|---|---|
Использование GetAttr |
|||
#18+
vgrafin, Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.08.2021, 17:07
|
|||
---|---|---|---|
|
|||
Использование GetAttr |
|||
#18+
court, Ok, вопрос не в реализации, в блогах с десяток способов. Меня ответ удивил. Я кажется писал в тему "Интересные факты.." или как-то похоже. Почему разный результат вывода? Или это, как всегда, "недокументированные..." или у меня соображалка не того. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.08.2021, 17:33
|
|||
---|---|---|---|
Использование GetAttr |
|||
#18+
vgrafin Удаляем Журналы GetAttr("C:\Base\Журналы") - Ош.53 FileNot Found GetAttr( "C:\Base\Журналы\Ошибки_заполнения.txt") - Ош.76 Path Not Found Если последний вывод понятен - нет папки, зачем искать файл, то предпоследний вывод не понятен. Вроде тоже должна быть ош.76? ты об этом - GetAttr("C:\Base\Журналы") - Ош.53 FileNot Found Так есть у тебя путь - C:\Base А вот файла Журналы - нет Ты ж не думаешь, что если у посл.компонента пути нет расширения, то ВБА будет его считать каталогом ? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.08.2021, 17:35
|
|||
---|---|---|---|
|
|||
Использование GetAttr |
|||
#18+
ОК, согласен,"C:\Base\Журналы" может и файл без расширения А тогда "C:\Base\Журналы\Ошибки_заполнения.txt" согласно 4 вывода - с кого переляку каталог с расширением. Кстати, зачем я полез в GetAttr - Случайно в коде подсунул MkDir(str), где str оказалось "C:\Base\Журналы\Ошибки_заполнения.txt" Ну и получил каталог с расширением. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.08.2021, 21:14
|
|||
---|---|---|---|
Использование GetAttr |
|||
#18+
vgrafin .... Кстати, зачем я полез в GetAttr... Можно и микроскопом гвозди забивать.... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2021, 13:29
|
|||
---|---|---|---|
|
|||
Использование GetAttr |
|||
#18+
sdku, я вроде этим методом и не собирался файлы создавать Способ Function FolderExists(strPath As String) As Boolean On Error Resume Next FolderExists = ((GetAttr(strPath) And vbDirectory) = vbDirectory) End Function описан 10 Exp 10 раз ещё хрен знает когда, по ошибке выдаёт False, а какая там ошибка - функцию не интересует. Ясно, что невозможно получит атрибуты того, чего нет, невозможно, просто логично было на вопрос о файле ответить -"Файла Нет", а про папку -"Папки нет". А то стебаться сразу... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2021, 15:33
|
|||
---|---|---|---|
Использование GetAttr |
|||
#18+
vgrafin Ясно, что невозможно получит атрибуты того, чего нет, невозможно,(то бишь выполнить проверку наличия файла\каталога функцией которая для этого не предназначена и удивляться что возникла ошибка.Да и ошибка ли это?? ) просто логично было на вопрос о файле ответить -"Файла Нет", а про папку -"Папки нет". А то стебаться сразу... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.08.2021, 14:07
|
|||
---|---|---|---|
|
|||
Использование GetAttr |
|||
#18+
sdku, подумал, осознал, сделал выводы. GetAttr стояло перед запись лога. Всё прекрасно работало с отсутствием файла(нет файла -ошибка-обработчик-создали-вернулись), пока для эксперимента не удалил директорию. Выкинул предпроверку - нет смысла дёргать её перед каждой записью - удаление файла, а тем более папки маловероятно, а в обработчик ошибок запускать конструкцию, которая опять генерирует практически ту же ошибку - хрень, атрибуты меня не интересуют. Ну, а настал полный Err - через Dir можно хоть до С: проверять. Что выдаёт GetAttr больше исследовать не буду! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=45&mobile=1&tid=1609608]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
217ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 290ms |
total: | 599ms |
0 / 0 |