|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Подскажите как реализовать следующие функции: - Проверить существование каталога - Создать каталог - Удалить файл ---------- Cache for Windows (x86-64) 2012.2.2 (Build 801) Fri Dec 7 2012 12:08:23 EST ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 11:26 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, Я раньше где-то упоминал про "трубу" - PIPE Вот этим и пользоваться можно. http://tinco.pair.com/bhaskar/gtm/doc/articles/PIPE_IO_Technical_bulletin.html Можно использовать команду ZSYstem - http://tinco.pair.com/bhaskar/gtm/doc/books/pg/UNIX_manual/index.html Все в общем делается с помощью самих Linux команд. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 11:41 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Valeriu , мне бы просто примеры готовые... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 11:52 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, ZSY "find /home/krvsa/test" zsy "mkdir /home/krvsa/test" zsy "rm /home/krvsa/test"Я на память. Прочитать про команды линукса не помешает... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 12:01 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Valeriukrvsa, ZSY "find /home/krvsa/test" zsy "mkdir /home/krvsa/test" zsy "rm /home/krvsa/test"Я на память. Прочитать про команды линукса не помешает... Спасибо. А обратная связь там какая? Т.е. как понять успешно или нет выполнилась та команда? ValeriuПрочитать про команды линукса не помешает...Все му свое время... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 13:14 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Valeriu ZSY "find /home/krvsa/test" zsy "mkdir /home/krvsa/test" zsy "rm /home/krvsa/test"При выполнении команд на терминал выдается всякая информация... От этого как-то можно избавиться? Поскольку нам лишний текст не нужен на терминале. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 13:41 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, Можно. Перенаправление ввода/вывода Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 14:00 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, Я точно не помню, но лучше на нулевое устройство Код: sql 1.
Например просто выводит на терминал: Код: sql 1.
И выводит на нулевое устройство: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 14:08 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
ValeriuМожно. Перенаправление ввода/вывода Т.е. это уже линуксовый синтаксис будет использоваться? Не gt.m... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 14:11 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
ValeriuПеренаправление ввода/вывода Valeriu Код: javascript 1.
Делал так Код: javascript 1.
И действительно, если каталог существует - на экран ничего не выводится. Но если указать несуществующий каталог - на экран все равно выдается сообщение о том, что такой-то каталог не существует. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 14:17 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, Все в общем делается с помощью самих Linux команд. Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 14:17 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 14:22 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, Код: xml 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 14:25 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Можно как написал, но просто перед знаком больше добавить 2 т.е. Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 14:34 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Valeriuпросто перед знаком больше добавить 2 Ошибку не пишет... Но при успехе куча текста на экране... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 14:58 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Valeriu Код: sql 1.
Тут молчком. Но "обратная связь", т.е. переменная $zsystem не равна 0 в любом случае, есть каталог или нет - всегда равна 1. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 15:04 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, Здесь в таком случае не обойтись без малюсенького bash файла... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 15:20 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 15:24 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
ValeriuЗдесь в таком случае не обойтись без малюсенького bash файла... У меня есть подозрение, что в таком случае я полностью потеряю актуальность "обратной связи"... Ведь файл отработает "правильно" в любом случае и переменная $zsystem всегда будет равна 0. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 15:43 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, Тогда с помощью трубы функцию. Перебираешь каталог на наличие подкаталога(файла) Я выдернул с проектаrtdirectory(patch,Ret,er) n io,p,i s p="namespace" o p:(COMMAND="find /"_patch_" -iname \r ":READONLY)::"PIPE" u p For i=1:1 r files(i) s Ret(i)=files(i)_$c(13,10) q:$zeof c p q ; ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 15:51 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
ValeriuТогда с помощью трубы функцию. Перебираешь каталог на наличие подкаталога(файла) Спасибо за пример с трубой! С наличием каталога понятно. А как трубой сделать создание каталога? Как сделать удаление файла? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 16:57 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa,MakeFolder(cmd,Info,Er) n io,line,p s p="fileMake" o p:(COMMAND=cmd:READONLY)::"PIPE" u p c p s Info="Folder "_cmd_" succesfull make..." q ; RemoveFolder(cmd,Info,Er) n io,line,p s p="fileRemove" o p:(COMMAND=cmd:READONLY)::"PIPE" u p c p s Info="Folder "_cmd_" succesfull remove..." q ; ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 17:04 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Valeriu , спасибо тебе! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2015, 08:10 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
ValeriuMakeFolder(cmd,Info,Er) n io,line,p s p="fileMake" o p:(COMMAND=cmd:READONLY)::"PIPE" u p c p s Info="Folder "_cmd_" succesfull make..." qДошли руки до работы с файлами и папками... Написали такую программу%RO Routine Output Utility GT.M 11-AUG-2015 12:09:01 tmp tmp ; n info d MakeFolder("/srv/box/test",.info) w info q MakeFolder(cmd,Info,Er) n io,line,p s p="fileMake" o p:(COMMAND=cmd:READONLY)::"PIPE" u p c p s Info="Folder "_cmd_" succesfull make..." q Ошибок не дает... Но и каталог не появляется... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 13:22 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, mkdir пропустили ... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 13:31 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, Выше я показа явно для find ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 13:32 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
d MakeFolder("mkdir /srv/box/test",.info) ; пустую папку d MakeFolder("touch /srv/box/test/file.txt",.info) ; пустой файл ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 13:53 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Valeriumkdir пропустили ... Я брал с оригинала. Как в итоге должно быть? Так?MakeFolder(cmd,Info,Er) n io,line,p s p="fileMake" o p:(COMMAND="mkdir "_cmd:READONLY)::"PIPE" u p c p s Info="Folder "_cmd_" succesfull make..." qЧто писать при удалении каталога? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 13:56 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, rm - ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 14:02 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Valeriu , еще раз спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 14:14 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Каталог делается...crtDir(Path) n ok,p s p="fileMake" o p:(COMMAND="mkdir "_Path:READONLY)::"PIPE" u p c p s ok=1 q:$q ok qХотел бы уточнить детали: - так ли важно чему равно p ? - есть ли какая-то "обратная связь", получилось или нет? Смотрели МСМовские $za, $zb, $zc - толку нет... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 15:48 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Есть ли возможность той "трубой" создать все "недостающие" каталоги? Т.е. часть пути существует... А ее концовка нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 15:56 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, Немножко непонятно что имеется в веду, а "недостающие" известны заранее ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 16:02 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Valeriuа "недостающие" известны заранее ??? Да. В инете нашли Код: javascript 1.
Оно? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 16:08 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, Вроде пишут такое. -p При указании этой опции перед созданием нового каталога предварительно создаются все несуществующие вышележащие каталоги. ПРИМЕРЫ Чтобы создать поддерево каталогов tmpdir/temp/dir, надо выполнить команду mkdir -p tmpdir/temp/dir Я не использовал. А для чего нужно это я так и не могу понять ? Я например когда новую рутину пишу, проверяю если такой уже нету при записи в каталог. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2015, 16:22 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
ValeriuА для чего нужно это я так и не могу понять ? Дело в том, что мы написали процедуры/функции, аналоги всего, что у нас есть в задаче но не М-стандарта... Теперь вот нужно написать их аналоги в gt.m. Поскольку в Кащее есть такой метод создания всего, указанного пути и кое кто его использовал в своих программах, нужно повторить и его... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2015, 08:11 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa- есть ли какая-то "обратная связь", получилось или нет? Тут написано (с примером):Example: set p="Files" set e="Errors" open p:(command="find /var/log -type d -print":readonly:stderr=e)::"PIPE" GT.M uses the standard system utility find to obtain a list of subdirectories of /var/log, which are read back via the device with handle "Files" with any errors (for example, "Permission denied" messages for sub-directories that the find command cannot process) read back via the device with handle "Errors". И еще чуть ниже:STDERR=string Specifies a device handle for a return pipe to which the created process writes any standard error output. The GT.M process can USE, READ, and CLOSE it, but cannot WRITE to it. When the GT.M process CLOSEs the PIPE device the PIPE device CLOSEs STDERR, if still OPEN.Т.е. можно использовать стандартный поток ошибок (stderr) чтобы получить сообщение об ошибке (если что-то пошло не так). Та же mkdir в пишет в stderr ошибки. В случае успешного завершение, никаких сообщений в stderr не будет. Пример: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
PS: Использование констант "blabla" и "errorsssss" - неявный ответ на вопрос:krvsa- так ли важно чему равно p? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2015, 12:45 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
GTM>open "errorsssss" Лишняя команда :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2015, 12:50 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
П.С.М.Т.е. можно использовать стандартный поток ошибок (stderr) чтобы получить сообщение об ошибке (если что-то пошло не так). Та же mkdir в пишет в stderr ошибки. В случае успешного завершение, никаких сообщений в stderr не будет. Потестим... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2015, 14:16 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Очередной вопросы... Как при чтении файла определить, что достигнут конец файла? Как "перебрать" (получить имена каталогов и файлов) все содержимое каталога? Как получить атрибуты файла/папки? Как узнать размер файла? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2015, 14:18 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, Как при чтении файла определить, что достигнут конец файла? q:$zeofКак "перебрать" (получить имена каталогов и файлов) все содержимое каталога?fileList(path,Ret,i,Er) n io,line,p s io=$io s p="fileList" o p:(COMMAND="ls -aF "_path:READONLY)::"PIPE" k Ret u p f i=1:1 r x s Ret(i)=x_$c(13,10) q:$zeof c p u io q ;Как узнать размер файла? http://webzel.ru/useful/shpargalki/69-kak-yznat-razmer-faula.html "ТРУБА" вам в помощь почти везде !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2015, 14:39 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, атрибуты командой: ls -al ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2015, 14:46 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Valeriu , еще раз спасибо... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2015, 16:04 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Valeriuатрибуты командой: Код: javascript 1.
А, что там является атрибутом? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2015, 15:50 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, первая колонка это и есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2015, 18:49 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Valeriuпервая колонка это и есть. Однако там атрибутов! Чего там, что означает? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 08:09 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsaValeriuпервая колонка это и есть. Однако там атрибутов! Чего там, что означает? d - тип файла, Directory files(d) Special files Block file(b) Character device file(c) Named pipe file or just a pipe file(p) Symbolic link file(l) Socket file(s) и права доступа и три группы букв (пользователь, группа и все) r(ead) - чтение w(rite) - запись e(x)ecute - исполнение ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 08:56 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
Ясно... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 09:27 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
А следующий вопрос, наверное, будет: как управлять правами доступа к файлам/папкам? По-ходу гугл выключили. По ключевым словам "команды linux для начинающих", "linux права доступа", etc находится масса статей, в т.ч. на русском + есть встроенный мануал (команда man <и_то_что_хотите_узнать>) PS: Да и для обсуждения линуксовых утилит (unix систем вообще), вроде как, целый отдельный форум есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 09:30 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 10:04 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
П.С.М.А следующий вопрос, наверное, будет: как управлять правами доступа к файлам/папкам? За каким фиком это нужно делать из gt.m? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 10:19 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
krvsa, За тем же фиком, ради которого Вы спрашиваете "как пользоваться утилитой ls?", её параметрами и управлением её вывода. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 10:29 |
|
[gt.m] Работа с файловой системой
|
|||
---|---|---|---|
#18+
П.С.М. , дабы не затрагивать тонкие струны твоей души могу предложить тебе следущее: - не читать мои сообщения - предоставить мне список запрещенных тем/вопросов, я его рассмотрю и возможно приму к сведению ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 11:47 |
|
|
start [/forum/topic.php?all=1&fid=39&tid=1556600]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 184ms |
0 / 0 |