I would like to manipulate the file system from some GAMS code. I am coming to this project mid-stream, and as a GAMS newbie, but am used to writing cross-platform file manipulations in other languages. It would be good for this code to be cross-platform Linux and Windows. Right now there is a commented-out line
*$call 'mkdir "%runfolder%"'
that I would like to un-comment (enable), however, I am having a hard time finding documentation on whether this would work cross-platform (I suspect not), and if not, how I could do this in a cross-platform way.
How can I manipulate the file system in a way that is guaranteed to work cross-platform?
Try using a global variable that defines the file separator. You can do this by querying the system.filesys system variable and setting the value accordingly. Such as:
Then you can use this when you need to specify paths, as in:
Note that GAMS doesn't let you indent
$if
and related directives.