В этом вопросе я использую Visual Studio 2008. Мой код довольно прост, так как он использовался по ссылке, которую я взял в Интернете. Я использую ASP / VB.Net, IIS6.0 на Windows Server 2003 box.
Я просмотрел различные источники в Интернете и не смог собрать правильный результат.
Цель этого состоит в том, чтобы перечислить множество каталогов и их соответствующих файлов, и позволить пользователю в конечном итоге управлять этим каталогом (например, открывать и удалять файлы).
Вот моя страница ASPX:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="DirectoryList.aspx.vb" Inherits="VCMReports.DirectoryList" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DataGrid runat="server" id="articleList" Font-Name="Verdana"
AutoGenerateColumns="False" AlternatingItemStyle-BackColor="#eeeeee"
HeaderStyle-BackColor="Navy" HeaderStyle-ForeColor="White"
HeaderStyle-Font-Size="15pt" HeaderStyle-Font-Bold="True">
<Columns>
<asp:HyperLinkColumn DataNavigateUrlField="Name" DataTextField="Name"
HeaderText="File Name" />
<asp:BoundColumn DataField="LastWriteTime" HeaderText="Last Write Time"
ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<asp:BoundColumn DataField="Length" HeaderText="File Size"
ItemStyle-HorizontalAlign="Right"
DataFormatString="{0:#,### bytes}" />
</Columns>
</asp:DataGrid>
</div>
</form>
</body>
</html>
А вот код позади:
Imports System.IO
Imports System.IO.DirectoryInfo
Partial Public Class DirectoryList
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim dirInfo As New DirectoryInfo(Server.MapPath("V:\Users\"))
articleList.DataSource = dirInfo.GetFiles("V:\Users\")
articleList.DataBind()
End Sub
Protected Sub GetFiles()
Dim files() As String = Directory.GetFiles("V:\Users\")
Dim myDir As DirectoryInfo = New DirectoryInfo("V:\Users\")
Dim fileInfos() As IO.FileInfo = myDir.GetFiles("*.*")
End Sub
При запуске страницы появляется следующая ошибка:
'V:\Users\' is not a valid virtual path.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: 'V:\Users\' is not a valid virtual path.
Вещи, которые я пробовал:
- На сервере я назначил диск и каталог.
- Разрешения, похоже, установлены правильно, олицетворение верно.
- Если бы я перечислял каталог в фактическом каталоге "C: \ Inetpub \ Directory \", сбоя не было бы.
- Я понимаю, что это неполно для части списка Справочника, это будет только список файлов (так что это нужно будет изменить.
- Я попытался создать виртуальный каталог, и приложение выдало ту же ошибку.
- На моей локальной машине для разработки создан тот же путь - та же ошибка.
Как я могу просматривать содержимое общего каталога и его файлов?