-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.
}
サーバーで実行しようとするとどうなりますか?サーバーがローカルマシンと同じディレクトリ構造を持ち、Webアプリケーションプロセスにローカルファイルにアクセスする権限がある場合は、これが動作するはずです。アプリケーションがリモートサーバー上で実行されているときに、自分のマシン上のローカルファイルにアクセスできるかどうかを尋ねる場合、答えは「いいえ」です。 –
あなたのサーバーで試してみてください。問題(IOException、ファイルが見つからないなど)に遭遇した場合は、何が起こったのかお知らせください。 –
さらに、 'C:\\ Users \\ Desktop \\ test data'はほぼ確実に無効なパスです。ユーザーとデスクトップの間にユーザーの名前が表示されます。 –