如何检查F#预处理器中的操作系统?

如何检查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” #恩迪夫 没有内置的预定义符号来指示您编译的操作系统。当您

我们是在同一个F#项目上工作的多人。一些人将MacOS和Visual Studio代码与一起使用,而另一些人将Windows与Visual Studio一起使用。在F代码中,我们需要访问一些文件,但MacOS使用
/
指定路径,而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
。是的。始终使用路径。处理路径时,请将路径组合起来。