在这个问题中我使用的是Visual Studio 2008.我的代码非常简单,因为它是从我从网上抓取的引用中使用的。我在Windows Server 2003的盒子上使用ASP / VB.Net,IIS6.0。
我在网上查看了各种来源,并且无法拼凑出正确的结果。
这样做的目的是列出一系列目录及其各自的文件,并允许用户最终管理该目录(例如打开和删除文件)。
这是我的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>
这是CodeBehind:
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.
我尝试过的事情:
我如何查看共享目录及其文件的内容?
答案 0 :(得分:2)
在这里,您可以找到问题第一部分的答案,为什么Server.MapPath不能(也不应该)用于解析网络共享的路径:http://forums.asp.net/t/785846.aspx/1
评论中提到的第二个问题是如何列出目录中的所有目录:
myDir.GetDirectories()