2014-06-20 107 views
7

我有一個文件與我的網站,我想讀取磁盤上承載。不知道如何訪問該文件,當我使用System.Environment.CurrentDirectory它指向一個D驅動器的位置。可以請某人告訴我如何訪問我的文件存儲在我的網站託管位置的根目錄。如何獲得本地文件系統路徑在天藍色的網站

感謝

回答

11

有一個叫家在您的網站環境的環境變量,將讓你中途有。

您可以使用剃刀語法或代碼(C#)來訪問它。例如,假設您有一個名爲data.txt的文件,它位於站點的根目錄下,其中包含默認文檔和其他文件。你可以得到這樣的完整路徑。

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

您可以使用Site Control Management /「Kudu」自行查找。例如,如果您的網站是contoso.azurewebsites.net,那麼只需導航到contoso。 scm .azurewebsites.net。在這裏,您可以瞭解所有可用於您的網站的文件系統和環境變量。

+1

我在Azure上也做了同樣的事情,我得到了「D:\ home \ site \ wwwroot \ bin \ NewFolder \ FileName.json」,但我仍然無法訪問......爲什麼!!?!?!?我知道該文件在那裏,因爲我可以在Kudu上看到它...我錯過了什麼? –

3

對於可測試性,我使用下面的代碼。

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

在上面的例子中,我與ContentCopy if newer屬性設置一個項目添加myfile.json文件夾Resources

1

這localhost及蔚藍的工作對我來說:

Path.Combine(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath, "file_at_root.txt"); 

System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath是您網站的根目錄的完整本地路徑。

+0

僅供參考:在Azure中運行它給了我:AppDomain.CurrentDomain.BaseDirectory ='D:\ Program Files(x86)\ SiteExtensions \ Functions \ 1.0.11090 \'這不是靠近「D:\ home \ site \ wwwroot \ 「 – granadaCoder

+0

@granadaCoder謝謝,它爲我工作,但我用HostingEnvironment.ApplicationPhysicalPath更新了它,它應該在Azure中爲您提供」D:\ home \ site \ wwwroot \「。 –

相關問題