Access namespace files
Hello, guys!
I want to get access to the folder where all files of the namespace are stored using COS. I found a way to get access to class files and found a folder where all csp, html, css etc files are stored.
However, is there any folder which contains all files(even .mac and .int)?
Or, probably, there is a method which gives all files content?
Comments
Every routines stores directly in database, so, you can't just open it as any file on your filesystem as well as you do it with csp files.
but you can open it with %RoutineMgr class, something like this
USER>zn "samples"
SAMPLES>set rtn=##class(%RoutineMgr).%OpenId("hello.mac")
SAMPLES>while 'rtn.Code.AtEnd { write !,rtn.Code.ReadLine()}
hello ; hello world routine
write !, "hello world"
write !, "bye"
end quit ; end
if you also need to get list of such files, you can use query StudioOpenDialog in %RoutineMgr class
SAMPLES>set st=##class(%SQL.Statement).%New()
SAMPLES>set sc=st.%PrepareClassQuery("%RoutineMgr","StudioOpenDialog")
SAMPLES>set rs=st.%Execute("*.mac")
SAMPLES>do rs.%Display()
Dumping result #1
Name IsDirectory Type Size Date Description IconType
DocBook . 9 0
badroutine.mac 0 62 2004-09-28 13:05:45 0
CinemaData.mac 0 10258 2016-05-10 22:32:04 0
compareloop.mac 0 1201 2004-12-02 18:23:57 0
datent.mac 0 3089 2002-01-03 12:05:01 0
datentobj.mac 0 2627 2002-09-06 00:15:23 0
dbconvert.mac 0 1532 2002-01-03 12:05:52 0
fibonacci.mac 0 365 2002-01-03 12:06:03 0
forexample.mac 0 502 2004-11-30 16:00:08 0
funcexample.mac 0 333 2002-01-03 12:06:30 0
hello.mac 0 251 2016-07-13 12:07:04.520803 0
LDAP.mac 0 68720 2013-12-16 11:48:09.962335 0
lookup.mac 0 8484 2008-08-21 19:17:48 0
lookup1.mac 0 1465 2002-01-03 12:07:15 0
lookup2.mac 0 5984 2002-01-07 18:08:46 0
lookupobj.mac 0 7857 2008-08-21 21:58:25 0
loopend.mac 0 242 2002-01-03 12:08:12 0
loopstart.mac 0 217 2002-01-03 12:08:21 0
nameloop.mac 0 552 2002-01-03 12:08:33 0
passbyref.mac 0 604 2002-01-07 12:01:47 0
postcond.mac 0 341 2002-01-03 12:08:51 0
procexample.mac 0 423 2002-01-03 12:08:59 0
publicvarsexample.mac 0 357 2002-01-03 12:09:09 0
RightTriangle.mac 0 1836 2011-02-24 18:56:29 0
root.mac 0 149 2004-11-30 15:57:29 0
simpleloop.mac 0 161 2002-01-03 12:09:59 0
SQLGatewayTest.mac 0 2480 2016-05-10 22:32:04 0
survivor.mac 0 179 2002-01-03 12:10:32 0
ZAUTHENTICATE.mac 0 37302 2015-03-10 10:48:43.589807 0
ZAUTHORIZE.mac 0 12120 2016-05-10 22:32:04 0
30 Rows(s) AffectedHi, Rustam!
A lot of Caché code parts (classes, mac and int routings, DFI's etc) are stored in the database itself, not in files. They should be exported some way to be presented in files.
I see you have already the way to export classes, so I believe you can repeat similar code logic to export mac and int code part into the files in the same or another OS folder.