using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.IO;
using System.Web.Security;
using System.Text.RegularExpressions;
namespace Yavsc.Controllers
{
public class FileSystemController : Controller
{
private static string usersDir ="~/users";
public static string UsersDir {
get {
return usersDir;
}
}
[Authorize]
public ActionResult Index()
{
string user = Membership.GetUser ().UserName;
ViewData ["UserName"] = user;
DirectoryInfo di = new DirectoryInfo (
Path.Combine(
Server.MapPath(UsersDir),
user));
if (!di.Exists)
di.Create ();
return View (new FileInfoCollection( di.GetFiles()));
}
public ActionResult Details(string id)
{
foreach (char x in Path.GetInvalidPathChars()) {
if (id.Contains (x)) {
ViewData ["Message"] =
string.Format (
"Something went wrong following the following path : {0} (\"{1}\")",
id,x);
return RedirectToAction ("Index");
}
}
string fpath = Path.Combine (BaseDir, id);
ViewData["Content"] = Url.Content (fpath);
FileInfo fi = new FileInfo (fpath);
return View (fi);
}
public ActionResult Create()
{
return View ();
}
[HttpPost]
[Authorize]
public ActionResult Create(FormCollection collection)
{
try {
string fnre = "[A-Za-z0-9~\\-.]+";
HttpFileCollectionBase hfc = Request.Files;
for (int i=0; i