如何在azure网站中获取本地文件系统路径

sp9*_*sp9 7 azure

我在磁盘上托管了一个文件以及我想要阅读的网站.当我使用System.Environment.CurrentDirectory指向D驱动器位置时,我不确定如何访问该文件.有人请告诉我我该怎么办?到我的文件存储在托管我的网站的根目录.

谢谢

Ric*_*ney 11

在您的网站环境中有一个名为HOME的环境变量,可以帮助您实现目标.

您可以使用razor语法或代码(C#)访问它.例如,假设您有一个名为data.txt的文件,该文件位于站点的根目录下,其中包含默认文档和其余文件.你可以像这样得到它的完整路径.

@{ var dataFileName = Environment.GetEnvironmentVariable("HOME").ToString() + "\\site\\wwwroot\\data.txt"; }
Run Code Online (Sandbox Code Playgroud)

您可以使用站点控制管理/"Kudu"自行查找.例如,如果您的网站是contoso.azurewebsites.net,那么只需导航到contoso.scm .azurewebsites.net.在这里,您可以了解有关您网站可用的文件系统和环境变量的所有信息.

  • 我在 Azure 上做同样的事情,我得到了“D:\home\site\wwwroot\bin\NewFolder\FileName.json”,但我仍然无法访问......为什么!!?!?!?我知道文件在那里,因为我可以在 Kudu 上看到它......我错过了什么? (2认同)

You*_*jae 5

为了可测试性,我使用下面的代码。

string path = "";
if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("HOME")))
    path = Environment.GetEnvironmentVariable("HOME") + "\\site\\wwwroot\\bin";
else
    path = ".";
path += "\\Resources\\myfile.json";
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,我将myfile.json文件添加到Resources项目中的文件夹中,ContentCopy if newer设置了属性。