Проверка наличия файла в каталоге
#1
Отправлено 09 июня 2006 - 10:19
Надо убедиться в том, что в заданном каталоге есть заданный файл.
Вопрос:
Как это сделать?
Если зайти вкаталог не проблемма, то как узнать о его содержимом, мне неизвестно.
Подскажите, если кто знает.
#2
Отправлено 09 июня 2006 - 10:26
#3
Отправлено 09 июня 2006 - 11:26
Проверить существует ли "заданный файл" по его полному пути.Задача следующая:
Надо убедиться в том, что в заданном каталоге есть заданный файл.
Вопрос:
Как это сделать?
Вообще-то это уже другая задача.Если зайти вкаталог не проблемма, то как узнать о его содержимом, мне неизвестно.
Посмотрите этот код...
Как его переделать под свои нужды, думаю, сообразите.
Function ShowFileList(folderspec) Dim fso, f, f1, fc, s Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFolder(folderspec) Set fc = f.Files For Each f1 in fc s = s & f1.name s = s & "<BR>" Next ShowFileList = s End Function
Сообщение отредактировал greyver: 09 июня 2006 - 17:08
#4
Отправлено 09 июня 2006 - 11:45
Result = FileVP (Exists, "Name=<директория\имя файла>", "VP=File Existence;ExpectedResult=PASS")
Например:
Result = FileVP (Exists, "Name=C:\public\TestProject\TestDatastore\DefaultTestScriptDatastore\TMS_Scripts\111.rec", "VP=File Existence;ExpectedResult=PASS")
(VerificationPOint соответсвенно можно настроить и на FAIL)
#5
Отправлено 13 июня 2006 - 09:38
#6
Отправлено 15 июня 2006 - 15:24
#7
Отправлено 15 июня 2006 - 15:56
Вопрос рядом - а как проверить существование каталога??? Проблема в том, что Вындовс после удаления пользователя оставляет его папку в Documents and Sett... Воот. А мне надо, чтоб она убилась, причем я не знаю, существовал ли пользователь с таким именем или нет (сорри, не пользователь, а учетная запись)...
Можно искать по folder AND exist - это собственно то, что вы хотите.
Можно по FileSystemObject - то что приводилось в этом топике в качестве примера.
Похоже информация проскакивает мимо Вас даже Вам предназначенная.
#8
Отправлено 15 июня 2006 - 16:56
#9
Отправлено 16 июня 2006 - 09:12
Function ShowFileList(folderspec) Dim fso, f, f1, fc, s Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFolder(folderspec) Set fc = f.Files For Each f1 in fc s = s & f1.name s = s & "<BR>" Next ShowFileList = s End Function
очевидно, его можно приспособить под мои нужды, но что и как в нем изменить, я не знаю..
мне надо в своей программе по очереди открывать файлы из директории и проводить с ними некоторые однотипные действия (открыл, сконвертировал, закрыл).
собссно, меня больше всего интересует именно этот вопрос - как организовать поочередное открытие файлов?
был, конечно, вариант просто натыкать их в режиме записи скрипта, но тогда при изменении/удалении файлов из директории придется изменять скрипт.
#10
Отправлено 16 июня 2006 - 10:09
Что конкретно в этом коде вам не понятно?очевидно, его можно приспособить под мои нужды, но что и как в нем изменить, я не знаю..
В цикле делается проход по всем файлам в директории, указаной в качестве параметра фукции.мне надо в своей программе по очереди открывать файлы из директории и проводить с ними некоторые однотипные действия (открыл, сконвертировал, закрыл).
собссно, меня больше всего интересует именно этот вопрос - как организовать поочередное открытие файлов?
Вам надо работать со свойствами и методами объекта файла, в коде это f1.
Методы и свойства посмотрите здесь, там можно найти и примеры.
#11
Отправлено 16 июня 2006 - 10:42
Что конкретно в этом коде вам не понятно?очевидно, его можно приспособить под мои нужды, но что и как в нем изменить, я не знаю..
смысл функции я понял, но ее непосредственная реализация в Robot'е для меня остается тайной..
пробовал вставить эту функцию, но robot'овский компилятор ругается на некоторые строки.
например, что делать с
.. Error: 'fso' is not a record type .. Warning: No DIM statement for Variable 'each' ..?
#12
Отправлено 16 июня 2006 - 14:14
dim fso as objectнапример, что делать с
Error: 'fso' is not a record type
Забыл я, что for each в роботе не работает.Warning: No DIM statement for Variable 'each'
Надо помянять на следующую конструкцию.
For i =0 to fc.count-1 s = s & fc.item(i).name s = s & "<BR>" NextНО. У меня это не заработало. Хотя странно, что документированное свойство item не работает.
Посему, спешу исправиться и предлагаю воспользаться этим кодом, который в роботе работает. (Выше уже предлагали использовать Dir)
function showfilesbydir (folder$) dim tmp$ Dim directory directory=Dir (folder$, 0) Do While directory<>"" tmp=tmp+folder$+directory+chr(13) ' или другие ваши действия directory=Dir Loop showfilesbydir=tmp end function Sub Main msgbox showfilesbydir ("c:\") End Sub
Удачи.
Сообщение отредактировал greyver: 16 июня 2006 - 14:16
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных