如何检查F#预处理器中的操作系统?
我们是在同一个F#项目上工作的多人。一些人将MacOS和Visual Studio代码与一起使用,而另一些人将Windows与Visual Studio一起使用。在F代码中,我们需要访问一些文件,但MacOS使用如何检查F#预处理器中的操作系统?,f#,operating-system,ionide,F#,Operating System,Ionide,我们是在同一个F#项目上工作的多人。一些人将MacOS和Visual Studio代码与一起使用,而另一些人将Windows与Visual Studio一起使用。在F代码中,我们需要访问一些文件,但MacOS使用/指定路径,而Windows使用\。在F#中,我们如何制作类似于: #如果操作系统使用WINDOWS let path=“path\to\file.txt” #埃利夫·奥斯·麦克 让path=“path/to/file.txt” #恩迪夫 没有内置的预定义符号来指示您编译的操作系统。当您
/
指定路径,而Windows使用\
。在F#中,我们如何制作类似于:
#如果操作系统使用WINDOWS
let path=“path\to\file.txt”
#埃利夫·奥斯·麦克
让path=“path/to/file.txt”
#恩迪夫
没有内置的预定义符号来指示您编译的操作系统。当您使用.NET时,您通常在所有操作系统上使用相同的编译程序集,因此无论如何,这不是您可以在预处理器中合理完成的事情
您可以在运行时使用System.Environment
检查正在运行的操作系统:
open System
let path =
if Environment.OSVersion.Platform = PlatformID.Win32NT then @"path\to\file.txt"
else @"path/to/file.txt"
也就是说,如果您唯一关心的是路径中的斜杠和反斜杠,那么您可以使用:
let path = System.IO.Path.Combine("path", "to", "file.txt")
没有内置的预定义符号来指示要编译的操作系统。当您使用.NET时,您通常在所有操作系统上使用相同的编译程序集,因此无论如何,这不是您可以在预处理器中合理完成的事情 您可以在运行时使用
System.Environment
检查正在运行的操作系统:
open System
let path =
if Environment.OSVersion.Platform = PlatformID.Win32NT then @"path\to\file.txt"
else @"path/to/file.txt"
也就是说,如果您唯一关心的是路径中的斜杠和反斜杠,那么您可以使用:
let path = System.IO.Path.Combine("path", "to", "file.txt")
大多数情况下,使用“/”访问路径在Windows中应该可以正常工作。这不太正确。至于路径分隔符,请阅读有关的文档。您可以在任何地方使用正斜杠。请记住使用
@“path\to\file.txt”
或“path\\to\\file.txt”
或“path\to\file.txt”
。但同样,您将使用正向斜杠。大多数情况下,使用“/”访问路径在Windows中应该可以正常工作。不太正确。至于路径分隔符,请阅读有关的文档。您可以在任何地方使用正斜杠。请记住使用@“path\to\file.txt”
或“path\\to\\file.txt”
或“path\to\file.txt”
。但话说回来,您将使用正斜杠。是的。处理路径时始终使用Path.combined
。是的。始终使用路径。处理路径时,请将路径组合起来。