共有ドライブを使用してASP.NETページのファイルまたはディレクトリの内容を一覧表示できない

この質問では、私はVisual Studio 2008を使用しています。私のコードは、Webから取得したリファレンスから使用されているので、とてもシンプルです。私はWindows Server 2003のボックスでASP/VB.Net、IIS6.0を使用しています。

私は様々な情報源をオンラインで見てきましたが、適切な結果をまとめることはできませんでした。

この目的は、多数のディレクトリとそれぞれのファイルをリストし、最終的にそのディレクトリを管理できるようにすることです(ファイルのオープンや削除など)。

ここに私のASPXページがあります:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="DirectoryList.aspx.vb" Inherits="VCMReports.DirectoryList" %>





    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
  
    
    
    
  
  

    </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.

私が試したこと:

  1. サーバー上で、ドライブとディレクトリをマップしました。
  2. 権限が正しく設定されているようですが、偽装は正しいです。
  3. 実際のディレクトリ "C:\ Inetpub \ Directory \"にディレクトリをリストすると、失敗はありません。
  4. これはディレクトリリストの部分では不完全であることを理解していますが、これはファイルのみを一覧表示するためです(変更する必要があります)。
  5. 仮想ディレクトリを作成しようとしましたが、アプリケーションで同じエラーが発生しました。
  6. 私のローカル開発マシンでは、同じパスが作成されています - 同じエラーです。

共有ディレクトリとそのファイルの内容をどのように表示できますか?

0
追加された 著者 Tim Schmelter,
myDir.GetDirectories()のDirectoryInfoとして各ディレクトリに対して
追加された 著者 Tim Schmelter,
Server.MapPathを削除し、GetFile( "V:\ users \")をGetFile( "")に変更し、ファイルを正常に取得できました。 2番目の質問ですが、必要に応じて新しいスレッドでこれを尋ねることができますが、この機能をディレクトリのリストに変更するにはどうすればよいですか?
追加された 著者 RogueSpear00,

1 答え

Here you find the answer on your first part of the question, why Server.MapPath cannot(and should not) be used to resolve the path to a network share: http://forums.asp.net/t/785846.aspx/1

あなたのコメントに記載されている2番目の質問は、ディレクトリ内のすべてのディレクトリをリストする方法です。

myDir.GetDirectories()

http://msdn.microsoft.com/en-us/library/s7xk2b58.aspx

2
追加された
ありがとう@TimSchmelter
追加された 著者 RogueSpear00,