我正在尝试使用 string[] files = System.IO.Directory.GetFiles("~/Pictures/");
在程序中的文件夹中搜索图片文件。这稍后将用于随机选择要在图像框中显示的图片。当它尝试查找 ~/Pictures 时出现错误,因为该方法正在查找 'C:\Program Files (x86)\Common Files\Microsoft Shared \DevServer\10.0\~\图片\'。反而。“~”不是让它在程序目录中查找吗?如果在安装程序之前我不知道它会是什么,如何让它在程序目录中显示?任何帮助将不胜感激!!
问问题
1707 次
4 回答
5
波浪号路径是一个 asp.net 结构,表示当前运行的 asp.net 应用程序的根。它在 asp.net 上下文之外没有任何意义—— Directory.GetFiles 不知道如何使用它。GetFiles确实知道如何使用常规文件系统路径。所以问题变成了:我们如何将 asp.net 相对路径转换为 GetFiles 可以使用的路径。答案是HttpContext.Current.Server.MapPath。
我现在不在我的网络服务器附近,但是类似
var serverPath = HttpContext.Current.Server.MapPath("~/Pictures/");
var files = Directory.GetFiles(serverPath);
应该让你开始。
于 2012-11-13T17:59:31.253 回答
1
我不认为你会发现“~”有任何意义。
尝试 Application.StartupPath
于 2012-11-13T17:47:33.917 回答
0
提供一个相对目录,比如“图片”,而不是“~/Pictures/”,应该可以解决问题。
于 2012-11-13T17:47:08.600 回答
0
只需使用System.IO.Directory.GetFiles('Pictures')
. Windows 上的路径分隔符是\
, not /
,并且当前目录下的目录仅作为相对路径位置引用。
于 2012-11-13T17:48:07.567 回答