我在.NET库中寻找一种方法(我猜它是一种静态方法),让我在读取文件时指定相对路径。 我的代码是:
let mycontent = Syste..IO.File.ReadAllLines ("C:\...\myfile.txt")
但是我想指定一个相对路径。如何?这是某种MapPath
我猜...
答案 0 :(得分:3)
相对路径指定如下:
System.IO.File.ReadAllLines("myfile.txt");
将搜索myfile.txt
相对于执行应用程序的工作目录。它也适用于子文件夹:
System.IO.File.ReadAllLines(@"sub\myfile.txt");
您在问题中引用的MapPath
函数用于ASP.NET应用程序,并允许您在给定虚拟路径的情况下检索文件的绝对路径。例如:
Server.MapPath("~/foo/myfile.txt")
如果您的网站位于c:\wwwroot\mysite
,则会返回c:\wwwroot\mysite\foo\myfile.txt
。
答案 1 :(得分:3)
您可以将相对路径传递给任何接受文件路径的函数,它将正常工作。
答案 2 :(得分:3)
如果您想要相对于应用程序所在目录的路径(而不是当前工作目录,可能不同),您可以执行以下操作:
module Path =
let appDir = AppDomain.CurrentDomain.SetupInformation.ApplicationBase
let makeAppRelative fileName = System.IO.Path.Combine(appDir, fileName)
//Usage
let fullPath = Path.makeAppRelative "myfile.txt"