我很好奇是否有人知道内置的Netlogo或Netlogo扩展原语,它允许您确定用户当前正在运行的操作系统?我希望根据用户的操作系统更改目录分隔符,并且能够确定此信息非常有用。
如果没有这样的东西,我会建造它!
答案 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
原语,以及许多其他有用的东西。