2016-07-27 9 views
-3

クライアントマシンのフォルダからすべてのxmlファイルを表示する必要があるaspxページにgridviewがあります。あなたがディレクトリパスを持っている場合は、フォルダの内容を取得するための方法はありますか?私は(私のマシンからそれを実行しているように)うまく動作する以下のコードを持っていますが、アプリケーションがサーバから実行されている場合にはうまく動作しません。Webアプリケーションを介してローカルフォルダからファイルを取得

WebForm.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="dotImage.WebForm3" %> 

<!DOCTYPE html> 

<html> 
<body> 
    <form runat="server"> 
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" Height="487px" Width="1176px" ViewStateMode="Enabled"> 
    </asp:GridView> 
    </form> 

</body> 
</html> 

WebForm.aspx.cs

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Directory.Exists("C:\\Users\\Desktop\\test data")) 
     { 
      DirectoryInfo di = new DirectoryInfo("C:\\Users\\Desktop\\test data"); 
      DirectoryInfo[] subDirs = di.GetDirectories(); 

      foreach (DirectoryInfo pendingBatch in subDirs) 
      { 
       if (pendingBatch.Exists && pendingBatch.GetFiles("*.xml").Length > 0) 
       { 
       //code to add files to a dataset 
       } 
      } 
     } 
     //bind dataset to the gridview. 
    } 
+0

サーバーで実行しようとするとどうなりますか?サーバーがローカルマシンと同じディレクトリ構造を持ち、Webアプリケーションプロセスにローカルファイルにアクセスする権限がある場合は、これが動作するはずです。アプリケーションがリモートサーバー上で実行されているときに、自分のマシン上のローカルファイルにアクセスできるかどうかを尋ねる場合、答えは「いいえ」です。 –

+0

あなたのサーバーで試してみてください。問題(IOException、ファイルが見つからないなど)に遭遇した場合は、何が起こったのかお知らせください。 –

+1

さらに、 'C:\\ Users \\ Desktop \\ test data'はほぼ確実に無効なパスです。ユーザーとデスクトップの間にユーザーの名前が表示されます。 –

答えて

0

は、セキュリティ上の理由から、Webブラウザは、クライアント・マシンのファイルのフォルダパスにアクセスすることはできません。

関連する問題