使用 File.Open on VS for MAC 如何提供绝对路径的字符串



将代码从 VS for Windows 移植到 VS for MAC。 一个函数的一部分使用 File.Open (System.IO( 打开一个文件,其中包含一个字符串,至少在 Windows 上,该字符串将提供要打开的绝对路径和文件。 相同的代码(在 VS for MAC 上(似乎支持字符串以包含当前项目目录二进制文件的路径。

举个例子,这是我"想"做的:

File.Open("~/Projects/TestProg/UseThisFile.txt", FileMode.Open)

但是,发生的是指示以下内容的 IO 异常:

System.IO.FileNotFoundException 找不到文件 "/users//projects/testProg/bin/Debug/TestProg.app/Content/Resources/~/Projects/TestProg/UseThisFile.txt">

只是想知道我错过了什么和/或我是否应该为此使用 File.Open,而不是 NSFileManager(如果我不必,则不必重定一堆代码(?

请使用:

Environment.ContentRootPath

它独立于您的平台(Windows,Linux,MacOS(工作

例如:

File.Open($"{Environment.ContentRootPath}/UseThisFile.txt", FileMode.Open)

Environment.ContentRootPathXamarin.Mac新式应用中不可用。

您可以使用Environment.CurrentDirectory

例:

var appContentResources = Environment.CurrentDirectory;    
Console.WriteLine(appContentResources);

输出:

/~~~/~~~/xamarin_mac.app/Contents/Resources

相关内容

最新更新