读取提供.NET中相对路径的文件中的所有行(F#)

时间:2011-02-28 15:07:56

标签: .net file-io f# filesystems

我在.NET库中寻找一种方法(我猜它是一种静态方法),让我在读取文件时指定相对路径。 我的代码是:

let mycontent = Syste..IO.File.ReadAllLines ("C:\...\myfile.txt")

但是我想指定一个相对路径。如何?这是某种MapPath我猜...

3 个答案:

答案 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"