この質問ではVisual Studio 2008を使用しています。私はWindows Server 2003のボックスでASP/VB.Net、IIS6.0を使用しています。共有ドライブを使用してASP.NETページのファイルまたはディレクトリの内容を表示できません
私は様々な情報源をオンラインで見てきましたが、適切な結果をまとめることはできませんでした。
この目的は、多数のディレクトリとそれぞれのファイルをリストし、最終的にそのディレクトリ(ファイルのオープンや削除など)を管理できるようにすることです。ここで
は私の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 \"にディレクトリをリストする場合、失敗はありません。
- 私は、これは一部のディレクトリ一覧のため不完全であることを理解します、これはだけなので、これは変更する必要があります(ファイルがリストされます。
- 私は仮想ディレクトリを作成しようとしました、そしてアプリケーションが同じエラーを提示した。 私の地元の開発マシン上で
- 、私が作成したのと同じパスを持っている - 。同じエラーを
どのように私は、共有ディレクトリの内容を表示することができるよ、それはあなたが答えを見つけるのファイルここで
http://forums.asp.net/t/785846.aspx/1 –
Server.MapPathを削除してGetFile( "V:\ users \")をGetFile( "*。*")に変更し、正常にファイルを取得します。 質問の2番目の部分ですが、必要に応じてこれを新しいスレッドで尋ねることができますが、この機能をディレクトリのリストに変更するにはどうすればよいですか? – RogueSpear00
'各ディレクトリに対してDirectoryInfoとしてmyDir.GetDirectories()' –