Я работаю в файловом браузере asp.net, который рекурсивно просматривает папки и перечисляет их файлы и подпапки. Однако я также хочу, чтобы файлы можно было загружать / просматривать, и там у меня, похоже, есть проблема. Я не могу правильно перевести адрес. У меня есть следующая конфигурация и код.
Редактировать
Проблема в том, что ссылки создаются
Response.Write(space + "<a href=" + "Upload/" + d.Name + ">" + d.FullName + "</a><br/>");
Не указывайте ссылку на файл правильно. Также есть проблема с бонусами, которую мне нужно решить: некоторые имена файлов содержат пробелы.
Web.config
<appSettings>
<add key="UploadDirectory" value="~/Upload/"/>
</appSettings>
FileBrowser.aspx.cs
public partial class FileBrowser : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DirectoryInfo di = new DirectoryInfo(Request.MapPath(System.Configuration.ConfigurationManager.AppSettings["UploadDirectory"]));
if (Directory.Exists(di.ToString()))
printDir("", di.ToString());
}
protected void printDir(string space, string dir)
{
DirectoryInfo di = new DirectoryInfo(dir);
foreach (DirectoryInfo d in di.GetDirectories())
{
Response.Write(space + "<a href=" + d.ToString() + ">" + d.ToString() + "</a><br/>");
printDir(space + " ", dir + "\\" + d.ToString());
}
foreach (FileInfo d in di.GetFiles())
{
Response.Write(space + "<a href=" + "Upload/" + d.Name + ">" + d.FullName + "</a><br/>");
}
}
}