0

asp.netのフォルダに保存されているファイルの仮想パス(プロジェクト外のパスはローカルシステムまたはサーバーを意味します)を変更したいです。

コードは

DataTable dtFiles =  
    GetFilesInDirectory(HttpContext.Current.Server.MapPath(UPLOADFOLDER));
gv.DataSource = dtFiles;
gv.DataBind();

if (dtFiles != null && dtFiles.Rows.Count > 0)
{
    double totalSize = Convert.ToDouble(dtFiles.Compute("SUM(Size)", ""));
    if (totalSize > 0) lblTotalSize.Text = CalculateFileSize(totalSize);
}

private static string UPLOADFOLDER = "D:/Uploads";

また、「D:/Uploads は有効な仮想パスではありません。」というエラーが表示されます。

4

2 に答える 2

1

ディレクトリ内のファイルを取得する必要があり、フル パスがわかっている場合は、Server.MapPath(). パスを使用するだけです。

ちなみに、あなたのコードではパス区切り文字が正しくありません。文字列は次の"D:/Uploads"ようにする必要があります@"D:\Uploads"(先頭の @ 記号は、文字どおりに扱われ、エスケープされない文字列であることを示していることに注意してください)。

于 2012-05-09T06:59:12.527 に答える
0

もちろん。サーバーに、IIS から完全に離れたパスをマップするように指示しています。どのようにすべきですか?Web アプリケーションを使用している場合は、そのような考えを完全に避けるようにしてください。可能ではありますが、セキュリティ上の問題が発生する可能性があるため、お勧めできません。

于 2012-05-09T06:59:00.527 に答える