Что нового

Как создать папку имя которой читается с переменной?

agikon

Знающий
Сообщения
789
Репутация
17
например есть некая переменная $name = 'папка1'
и надо создать папку с именем этой переменной на рабочем столе.
то есть на рабочем столе должн абыть папка с именем "1", а в ней папка с именем "папка1"


Код:
$Name1 = 'папка1'
DirCreate(@DesktopDir & '\1\'&$Name1'  ')

вот так не выдаёт ошибку при компиляции.

подскажите пожалуйста.
 

panda_911

Только вверх, только вперед!
Сообщения
52
Репутация
8
ну вродь просто убрать лишние кавычки

Код:
$Name1 = 'папка1'
DirCreate(@DesktopDir & '\1\' & $Name1)
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
да получилось.
panda_911 спасибо.

---------------------------------
но ещё вопросик появился.
как просто узнать имя папки которая лежит в известной папке?

например на рабочем столе лежит папка "1" и в этой папке есть ещё папка. Так вот как получить имя этой папки?
Такое возможно?
Подскажите пожалуйста.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Код:
_FileListToArray()

Искать в справке. Так найдете имена всех папок(файлов) находящиеся в папке.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
а подробнее можно? пожалуйста.
например как получить имя папки в MsgBox-сообщении.
Код:
DirCreate(@DesktopDir & '\1\')
 

truten

Новичок
Сообщения
7
Репутация
1
Код:
_FileListToArray(@DesktopDir & '\1\' , $sFilter = "*" , 2)

Вроде так но, дожди лучше спецов :whistle:
 

panda_911

Только вверх, только вперед!
Сообщения
52
Репутация
8
из справки

Код:
$search = FileFindFirstFile(@DesktopDir & "\1\*.*")

If $search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
EndIf

While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop

    MsgBox(4096, "File:", $file)
WEnd
FileClose($search)


Будет выводить по одному имени в MsgBox.
(правда и файлы и папки будет показывать)


*ну или действительно через массив с выводом из него MsgBox

Код:
#Include <File.au3>
#Include <Array.au3>

$FileList = _FileListToArray(@DesktopDir & '\1\', "*", 2)
;~ _ArrayDisplay($FileList)
For $i = 1 To UBound ($FileList) - 1
	MsgBox(4096, "File:", $FileList[$i])
Next


если папка заведомо одна то можно убрать цикл

Код:
MsgBox(4096, "File:", $FileList[1])
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Ещё 1 вариант... :whistle:
Код:
#include <Array.au3>

Dim $Array[1]

$First = FileFindFirstFile(@DesktopDir & '\1\*.*')
If @error Then Exit MsgBox(0, 'Ощибка', 'Такой папки нет !')

While 1
	$Next = FileFindNextFile($First)
	If @error Then ExitLoop
	_ArrayAdd($Array, $Next)
WEnd

_ArrayDisplay($Array)


Выдает имена всех папок в заданной директории.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
panda_911
Zaramot

спасибо, таки сделал по вашим примерам, всё получилось.
Но а вообще конечно загрузили вы меня инфой, сижу перевариваю :smile:
 
Верх