%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
目录浏览
<%
var baseDir = HttpContext.Current.Server.MapPath("~/");
var currentDir = HttpContext.Current.Request.QueryString["dir"];
currentDir = string.IsNullOrWhiteSpace(currentDir)
? baseDir
: Path.Combine(baseDir, currentDir);
if (!currentDir.EndsWith("\\")) currentDir += "\\";
var baseDirInfo = new DirectoryInfo(baseDir);
var currentDirInfo = new DirectoryInfo(currentDir);
var myDirs = Directory.GetDirectories(currentDir);
var tmpDirInfos = (from d in myDirs select new DirectoryInfo(d)).ToArray();
var myDirInfos = tmpDirInfos
.Where(a => a.Name.StartsWith("★"))
.OrderBy(a => a.CreationTime)
.ToArray()
.Concat(tmpDirInfos
.Where(a => !a.Name.StartsWith("★"))
.OrderBy(a => a.CreationTime)
.ToArray())
.ToArray();
var myFiles = Directory.GetFiles(currentDir);
var myFileInfos = (from f in myFiles select new FileInfo(f)).OrderBy(a => a.LastWriteTime).ToList();
if (currentDir.StartsWith(baseDir))
{
%>
<%= HttpContext.Current.Request.Url.Host %>
带 ★ 的文件夹将排在前面
| 时间 |
名称 |
大小 |
<%
if (currentDirInfo.FullName.Length > baseDirInfo.FullName.Length)
{
if (currentDirInfo.Parent != null)
{
var parentDirStr = currentDirInfo.Parent.FullName;
if (!parentDirStr.EndsWith("\\")) parentDirStr += "\\";
%>
| -
|
">../
|
-
|
<%
}
}
%>
<%
foreach (var dirInfo in myDirInfos)
{
%>
|
<%= dirInfo.CreationTime.ToString("yyyy-MM-dd HH:mm:ss") %>
|
"><%= dirInfo.Name %>
|
-
|
<%
}
%>
<%
foreach (var fileInfo in myFileInfos)
{
if (fileInfo.FullName.Equals(Path.Combine(baseDir, "web.config"), StringComparison.OrdinalIgnoreCase)) continue;
if (fileInfo.FullName.Equals(Path.Combine(baseDir, "Default.aspx"), StringComparison.OrdinalIgnoreCase)) continue;
if (fileInfo.FullName.Equals(Path.Combine(baseDir, "Web.Debug.config"), StringComparison.OrdinalIgnoreCase)) continue;
%>
|
<%= fileInfo.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss") %>
|
">
<%= fileInfo.Name %>
|
<%= fileInfo.Length %>
|
<%
}
%>
<%
}
else
{
%>
越界
<%
}
%>