2013-07-30 5 views
0

Глупый вопрос, но здесь идет ...File.Move на клиентской машине Asp.net MVC

Можно ли написать интранете окна аутентификации ASP.NET MVC приложение, которое использует File.Move переименовать файл на пользователи машины? Или файл File.Move и использование Path.GetDirectory и других функций System.IO будут выглядеть в структуре каталогов сервера IIS вместо клиентской машины?

[HttpPost] 
    public ActionResult Index(HttpPostedFileBase file, string append) 
    { 
     try 
     { 
      if (file != null && file.ContentLength > 0) 
      { 
       var fileName = Path.GetFileName(file.FileName); 
       DirectoryInfo filepath = new DirectoryInfo(file.FileName); 
       string parentpath = Path.GetDirectoryName(filepath.FullName); 
       DirectoryInfo searchablePath = new DirectoryInfo(parentpath); 

       var directories = searchablePath.GetFiles("*", SearchOption.AllDirectories); 

       foreach (FileInfo d in directories) 
       { 
        if (!string.IsNullOrEmpty(append) && !d.Name.Contains(append)) 
        { 
         string fName = Path.GetFileNameWithoutExtension(d.Name); 
         string fExt = Path.GetExtension(d.Name); 

         System.IO.File.Move(d.FullName, Path.Combine(d.DirectoryName, fName + append + fExt)); 
        } 
       } 
      } 
     } 
     catch (Exception ex) 
     { 

     } 

     return View(); 
    } 

Я пробовал это, но получаю filenotfoundexception.

Любые идеи?

+0

Что вы делаете? Почему вы пытаетесь переместить файл? Куда вы пытаетесь его переместить? –

+0

Я просто пытаюсь переименовать файл на клиентской машине, используя File.Move – MightyAtom

ответ

0

Они действительно будут работать только на сервере.

Вы можете посмотреть на различные файлы и спецификации, связанные с файловой системой для Клиентского JavaScript API, предоставляемых браузером пользователя:

1

аспид .NET-код запускается на сервере, поэтому он будет смотреть на файлы на сервере.

Вы не можете переименовать файл на клиентской машине, однако было бы возможным переименовать файл на компьютере, который используется в качестве клиента, если:

  • сервер и компьютер находятся в той же сети
  • сервер знает имя компьютера
  • сервер знает, в какой папке искать в компьютере
  • папка совместно с учетной записью пользователя, запустившего код ASP.NET на сервере с достаточно п привилегии для изменения имени файла

В этом смысле компьютер не является клиентом сервера, но сервер напрямую связывается с компьютером через файловую систему, а не через IIS.

Смежные вопросы