【发布时间】:2017-01-13 06:50:48
【问题描述】:
我在运行时在 App_Data 文件夹中创建新文件。我的要求是阅读这些文件名并继续进行。 我的代码如下:
var filenames = from fullFilename
in Directory.EnumerateFiles(AppDomain.CurrentDomain.BaseDirectory +
"\\App_Data\\", "*.xml")
select Path.GetFileName(fullFilename);
foreach (string filename in filenames)
{
System.Diagnostics.Debug.WriteLine("filename -- "+filename);
}
上面的代码说
找不到目录 App_Data。
但这存在于我的项目中。
如何使用此枚举器获取所有文件的名称?
更新:在运行时创建文件时,我使用 HostingEnvironment.MapPath(@"/myproject/") +"/App_Data"。这将在该位置创建文件。但它不允许我从那里阅读。
【问题讨论】:
-
仅仅因为它存在于您的源代码树中并不意味着它存在于您的可执行文件编译到的应用程序二进制文件夹中。
-
AppDomain.CurrentDomain.BaseDirectory的值和你想的一样吗? -
我想你想要
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)而不是AppDomain.CurrentDomain.BaseDirectory + "\\App_Data\\" -
App_Data在哪里?是解决方案中的文件夹还是系统文件夹AppData -
@MohitShrivastava 我试过了,但它仍然给出错误,因为“抛出异常:mscorlib.dll 中的'System.IO.DirectoryNotFoundException'”。这很明显,因为这给出的路径为“C:\Users\User1\AppData\Roaming”,这是不正确的。这个 App_Data 在我的项目中。
标签: c#