Страницы: 1
RSS
Как получить имя одного файла из папки
 
Здравствуйте, подскажите пожалуйста: необходимо получить имя первого файла из определенной папки, пытаюсь написать это:
Код
Dim FSO As FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")

Set q = FSO.GetFolder(папка).Files.Item(1).Name
 
пытался по всякому, но ни в какую не хочет - ругается (например object required на .Name), что я делаю не так и как получить имя одного файла (любого), без перебора?
 
.Name - это строка, а не объект -> Set в последней строке лишний!
 
Можно и без FSO
Код
dim sFile as string
sFile = dir(папка & "\*.*")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Апострофф написал: .Name - это строка, а не объект
хорошо, но почему не работают следующие констукции:
Код
Set q = FSO.GetFolder(xFolder).Files
i = q.Item(1).Name

'или эта
Set q = FSO.GetFolder(xFolder)
i = q.Files.Item(1).Name 
и как все же через FSO получить имя файла?
Цитата
Апострофф написал: Set в последней строке лишний!
без Set q ругается: Run-time error '5': Invalid procedure call or argument - из #1
Run-time error '450': Wrong number of arguments or invalid property assignment - из #4, и не передает q объект Files или Folder
Изменено: akok - 09.02.2016 12:43:59
 
Цитата
akok написал: и как все же через FSO получить имя файла?
Через Item и впрямь не получается, тогда так -
Код
For Each f In CreateObject("Scripting.FileSystemObject").GetFolder(xFolder).Files
  i = f.Name:exit for
' Debug.Print f.Name
Next
 
Цитата
Апострофф написал: Через Item и впрямь не получается...
тоже думал над вариантом с перечислением, но никак не мог поверить в то, что через Item - не пускает (думал - может я, что неправильно делаю). Ну тогда ладно, The_Prist, Апострофф благодарю за ответы!
Изменено: akok - 09.02.2016 12:44:27
 
А кто сказал, что Item может вообще по номеру возвращать что-то? :) Свойство Item ассоциировано исключительно с именем файла и предназначено для проверки - есть ли файл с указанным именем. Если файла нет - генерируется ошибка 53.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Читают тему
Наверх