2012-05-09 19 views
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:/アップロード有効な仮想パスではありません。"。

答えて

0

もちろんです。 IISから完全に離れたパスをマップするようにサーバーに指示しています。どうやってやるの?あなたがウェブアプリケーションを使用しているなら、そのようなアイデアを完全に避けるようにしてください。可能であれば、実行可能なセキュリティの問題のためには良い考えではありません。

1

ディレクトリにファイルを取得したい場合は、フルパスを知っている場合は、Server.MapPath()を使用する必要はありません。ちょうどパスを使用してください。

ちなみに、パス区切り記号はコードで正しくありません。文字列"D:/Uploads"@"D:\Uploads"でなければなりません(文字通り扱われ、エスケープされない文字列を示すにはleading @ signに注意してください)。

関連する問題