Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 [gt.m] Работа с файловой системой  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13153
Подскажите как реализовать следующие функции:
- Проверить существование каталога
- Создать каталог
- Удалить файл
----------
Cache for Windows (x86-64) 2012.2.2 (Build 801) Fri Dec 7 2012 12:08:23 EST
27 июл 15, 11:26    [17938136]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2056
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 июл 15, 11:41    [17938237]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13153
Valeriu, мне бы просто примеры готовые...
27 июл 15, 11:52    [17938318]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2056
krvsa,
 ZSY "find /home/krvsa/test"
 
zsy "mkdir /home/krvsa/test"
 
zsy "rm /home/krvsa/test"
Я на память. Прочитать про команды линукса не помешает...
27 июл 15, 12:01    [17938377]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13153
Valeriu
krvsa,
 ZSY "find /home/krvsa/test"
 
zsy "mkdir /home/krvsa/test"
 
zsy "rm /home/krvsa/test"
Я на память. Прочитать про команды линукса не помешает...

Спасибо.
А обратная связь там какая? Т.е. как понять успешно или нет выполнилась та команда?

Valeriu
Прочитать про команды линукса не помешает...
Все му свое время...
27 июл 15, 13:14    [17938824]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13153
Valeriu
 ZSY "find /home/krvsa/test"
 
zsy "mkdir /home/krvsa/test"
 
zsy "rm /home/krvsa/test"
При выполнении команд на терминал выдается всякая информация... От этого как-то можно избавиться?
Поскольку нам лишний текст не нужен на терминале.
27 июл 15, 13:41    [17939055]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2056
krvsa,
Можно. Перенаправление ввода/вывода
>> $log 2>&1
27 июл 15, 14:00    [17939257]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2056
krvsa,
Я точно не помню, но лучше на нулевое устройство
"> /dev/null 2>&1"

Например просто выводит на терминал:
ls

И выводит на нулевое устройство:
ls > /dev/null
27 июл 15, 14:08    [17939330]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13153
Valeriu
Можно. Перенаправление ввода/вывода

Т.е. это уже линуксовый синтаксис будет использоваться? Не gt.m...
27 июл 15, 14:11    [17939358]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13153
Valeriu
Перенаправление ввода/вывода

Valeriu
ZSY "find /home/krvsa/test"

Делал так
ZSY "find /home/krvsa/test > /dev/null"

И действительно, если каталог существует - на экран ничего не выводится. Но если указать несуществующий каталог - на экран все равно выдается сообщение о том, что такой-то каталог не существует.
27 июл 15, 14:17    [17939428]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2056
krvsa,
Все в общем делается с помощью самих Linux команд.
Да.
27 июл 15, 14:17    [17939430]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2056
krvsa,
find / -name '/home/krvsa.test' 2>/dev/null
27 июл 15, 14:22    [17939468]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2056
krvsa,
[root@GTMDatabase cachesys]# find > /dev/null /home/krvsa/test
find: `/home/krvsa/test': No such file or directory
[root@GTMDatabase cachesys]# find / -name 'program.c' 2>/dev/null
^C
[root@GTMDatabase cachesys]# find / -name '/home/krvsa' 2>/dev/null
[root@GTMDatabase cachesys]# find / -name '/home/krvsa/test' 2>/dev/null
[root@GTMDatabase cachesys]#
[SRC DELPHI]
27 июл 15, 14:25    [17939490]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2056
Можно как написал, но просто перед знаком больше добавить 2
т.е.
ZSY "find /home/krvsa/test 2> /dev/null"
27 июл 15, 14:34    [17939577]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13153
Valeriu
просто перед знаком больше добавить 2

Ошибку не пишет...
Но при успехе куча текста на экране...
27 июл 15, 14:58    [17939817]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13153
Valeriu
find / -name '/home/krvsa.test' 2>/dev/null

Тут молчком.
Но "обратная связь", т.е. переменная $zsystem не равна 0 в любом случае, есть каталог или нет - всегда равна 1.
27 июл 15, 15:04    [17939862]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2056
krvsa,
Здесь в таком случае не обойтись без малюсенького
bash файла...
27 июл 15, 15:20    [17939974]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2056
#!/bin/bash
FILE=$1
if [ -f $FILE ]; then
   echo "Файл '$FILE' существует"
else
   echo "Файл '$FILE' не существует"
fi
27 июл 15, 15:24    [17940001]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13153
Valeriu
Здесь в таком случае не обойтись без малюсенького bash файла...

У меня есть подозрение, что в таком случае я полностью потеряю актуальность "обратной связи"...
Ведь файл отработает "правильно" в любом случае и переменная $zsystem всегда будет равна 0.
27 июл 15, 15:43    [17940163]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2056
krvsa,
Тогда с помощью трубы функцию.
Перебираешь каталог на наличие подкаталога(файла)
Я выдернул с проекта
rtdirectory(patch,Ret,er)
 
io,p,i
 
p="namespace"
 
p:(COMMAND="find /"_patch_" -iname \r ":READONLY)::"PIPE"
 
p
 
For i=1:1 files(iRet(i)=files(i)_$c(13,10) q:$zeof
 c 
p
 
q
 
;
27 июл 15, 15:51    [17940231]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13153
Valeriu
Тогда с помощью трубы функцию.
Перебираешь каталог на наличие подкаталога(файла)

Спасибо за пример с трубой! С наличием каталога понятно.
А как трубой сделать создание каталога? Как сделать удаление файла?
27 июл 15, 16:57    [17940661]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2056
krvsa,
MakeFolder(cmd,Info,Er)
 
io,line,p
 
p="fileMake"
 
p:(COMMAND=cmd:READONLY)::"PIPE"
 
p
 
p
 
Info="Folder "_cmd_" succesfull make..."
 
q
 
;
RemoveFolder(cmd,Info,Er)
 
io,line,p
 
p="fileRemove"
 
p:(COMMAND=cmd:READONLY)::"PIPE"
 
p
 
p
 
Info="Folder "_cmd_" succesfull remove..."
 
q
 
;
27 июл 15, 17:04    [17940699]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13153
Valeriu, спасибо тебе!
28 июл 15, 08:10    [17943173]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13153
Valeriu
MakeFolder(cmd,Info,Er)
 
io,line,p
 
p="fileMake"
 
p:(COMMAND=cmd:READONLY)::"PIPE"
 
p
 
p
 
Info="Folder "_cmd_" succesfull make..."
 
q
Дошли руки до работы с файлами и папками... Написали такую программу
%RO Routine Output Utility
GT.M 11-AUG-2015 12:09:01
tmp
tmp ;
 
info
 
MakeFolder("/srv/box/test",.info)
 
info
 
q
MakeFolder(cmd,Info,Er)
 
io,line,p
 
p="fileMake"
 
p:(COMMAND=cmd:READONLY)::"PIPE"
 
p
 
p
 
Info="Folder "_cmd_" succesfull make..."
 
q
Ошибок не дает... Но и каталог не появляется...
14 авг 15, 13:22    [18017648]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Работа с файловой системой  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 2056
krvsa,
mkdir пропустили ...
14 авг 15, 13:31    [18017702]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Ответить