NetLogo:原语或扩展原语来确定操作系统?

时间:2014-06-10 15:02:53

标签: operating-system netlogo

我很好奇是否有人知道内置的Netlogo或Netlogo扩展原语,它允许您确定用户当前正在运行的操作系统?我希望根据用户的操作系统更改目录分隔符,并且能够确定此信息非常有用。

如果没有这样的东西,我会建造它!

1 个答案:

答案 0 :(得分:1)

不存在内置基元。

通过使用file-exists?来测试某些特定于操作系统的文件是否存在,例如在类Unix系统上的/etc/passwd.txt,可能有可能在纯NetLogo中破解一些kludgy(包括Mac OS X)。至于用于此的最佳文件,我不知道,但如果已经有一个SO答案(因为它不是NetLogo特定的问题),我不会感到惊讶。

我想也许https://github.com/NetLogo/Shell-Extension/拥有它。但我现在看到它虽然它具有读取和设置环境变量的原语,但它没有类似的Java系统属性原语,这就是你需要的(System.getProperty("os.name"))。我想这会对扩展做出很好的补充。

re:"根据用户的操作系统改变目录分隔符"具体是:

如果您需要处理来自操作系统的路径,那么是的,您需要准备好处理特定于平台的分隔符。

如果您只是将路径发送到操作系统,则可能不需要担心。我很久没有使用Windows了,但是它可能只是使用正斜杠。

如果您正在进行路径名操作,则可能需要查看Charles Staelin的pathdir扩展程序https://github.com/cstaelin/Pathdir-Extension。它包含一个pathdir:get-separator原语,以及许多其他有用的东西。