2013-07-30 4 views
0

어리석은 질문에 File.Move 그러나 여기 간다 ...클라이언트 시스템 Asp.net MVC

는에있는 파일의 이름을 변경 File.Move를 사용하는 인트라넷 윈도우 인증의 asp.net MVC 응용 프로그램을 작성하는 것이 가능 사용자 기계? 아니면 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

답변

1

ASP .NET 코드는 서버에서 실행되므로 서버의 파일을 볼 수 있습니다.

  • 서버와 컴퓨터가 켜져 있습니다

    당신은 클라이언트 컴퓨터에있는 파일 이름을 바꿀 수 없습니다

    그러나이 경우, 클라이언트로 사용되는 컴퓨터에있는 파일의 이름을 변경 이 될 것입니다 동일한 네트워크

  • 서버는
  • 서버가 컴퓨터에서 찾아 할 폴더를 알고있는 컴퓨터의 이름을 알고
  • 폴더는 사용자 계정이 충분히 사용하여 서버에서 ASP.NET 코드를 실행하는 공유
  • 피 파일의 이름을 변경하기 위해 노력한다.

그런 의미에서 컴퓨터는 서버의 클라이언트가 아니지만 서버는 IIS가 아닌 파일 시스템을 통해 컴퓨터와 직접 통신합니다.