[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Directory separators
>
> >
> > I have been using the following function to select the appropriate OS
> > specific directory separator. I have two questions about it: (1) what
> > is the correct directory separator in VMS?, and (2) is there a built-in
> > means of getting the same information?
> >
> > Thanks,
> >
> > Ben
> >
> > ;------START
> > FUNCTION SYSSEP
> >
> > Case StrLowCase(!Version.OS_Family) of
> > 'unix': Return, '/'
> > 'win': Return,'\'
> > 'macos': Return,':'
> > 'vms': Return, ''
> > Else: Return, ''
> > EndCase
> >
> > End
> > ;---------END
>
> Paul van Delst is correct that "." separates subdirectories in VMS.
> However, the most frequent use that I've seen for a case statement like
> the above is to separate the directory specification from a file name.
> In that case you'd want "]". To complete Paul's example:
>
> DISK$NAME1:[PAULV.DIR.SUBDIR.SUBSUBDIR]filename.ext
>
In VMS you may also get a file path define via a logical such as:
$ DEFINE DIR_PATH DISK$NAME1:[PAULV.DIR.SUBDIR.SUBSUBDIR]
in which case the above file spec becomes DIR_PATH:filename.ext
So you also need to search for ":" as well as "]". To do this you can
use a regular expression as show below.
;-------------------------------------------------------------
Function ExtrFileName, FullFileSpec
; Given the full file spec extract the file name. (vms case)
f= StrSplit(FullFileSpec,'^*:|^*\]',/Extract)
f = f[N_Elements(f)-1]
f= StrSplit(f,';*$',/Extract)
Return, f[0]
End
;--------------------------------------------------------------
Regards,
George Constantinides
Manly Hydraulics Laboratory
email: GeorgeC@mhl.nsw.gov.au
URL http://www.mhl.nsw.gov.au