首页 > 解决方案 > 无法将文件写入 Directory.GetCurrentDirectory() 中的路径

问题描述

我试图通过在解决方案的视图文件夹中动态创建一个文件来编写字符串。我得到如下当前路径并进一步附加到我需要的路径:

         string tempPath = Directory.GetCurrentDirectory() + "\\Views\\" + guid + "_" + fileName + 
         ".cshtml";
         File.WriteAllText(tempPath, data);

这在本地工作得很好。但不是托管应用程序的位置。我只想在子文件夹 Views 下写入文件,但它没有发生。它无法写入托管应用程序中的文件。

我尝试了其他选项Assembly.GetEntryAssembly().Location,例如 - 进入 bin/debug --- 不会进入 Views 文件夹。我应该如何解决这个问题以获得所需的路径:

C:\Users\....\Services\A.B.C\A.B.C.API\Views\91c914d6-f551-4eea-97de-d8f842d1692e_File_NAME.cshtml

标签: c#asp.net-mvc.net-core

解决方案


我不确定写入失败时发生了什么。

如果抛出异常,您可能会在消息中得到解释。如果它缺少 NTFS 权限,只需添加它。

如果什么都没发生,继续执行,你可能写错了文件夹:在控制台上显示 Directory.GetCurrentDirectory() 返回的值。如果您无法修改源代码,请使用 procmon(Microsoft sysinternals 工具)之类的工具监视文件,以查看文件的写入位置。

告诉我们更多关于寻求帮助的行为。


推荐阅读