2011-01-11 2 views
0

나에게 전달 된 시스템의 코드를 파악하려고합니다. asp.net C# MVC로 작성되었습니다.MVC C# 조건에 일치하는 이름의 서버에 파일을 넣는 경우

이 시스템의 한 섹션은 서버의 폴더에있는 파일을 찾아서 데이터베이스로 가져옵니다. 파일에 대한 세부 정보는 서버의 동일한 폴더에도있는 Excel 파일에 보관됩니다.

현재 Excel 시트에 PDFName 열 아래에 값이 있으면 시스템은 해당 이름에 해당하는 파일을 찾습니다. 일치하는 파일이 없으면 시스템에서 데이터를 가져 오지 않습니다.

내가해야 할 일은 파일이있는 경우 데이터가있는 파일을 가져 오지만 파일이 없으면 파일을 가져올 수 있도록 데이터를 가져옵니다. 나중에 추가됨. 아래는 코드에서 해당 파일을 찾는 스 니펫입니다.

 if (!string.IsNullOrEmpty(fileRow.PDFName)) 
     { 
      try 
      { 
       FileInfo matchingFile = files.First(df => (df.Extension.ToLower() == ".pdf" && df.Name.Replace(df.Extension, "").ToLower() == fileRow.PDFName)); 

       FTPFileEntry f = new FTPFileEntry() 
       { 
        FileExtension = matchingFile.Extension, 
        FileName = matchingFile.Name, 
        Name = titleRow.PDFName, 
        Type = matchingFile.Extension.Trim('.') 
       }; 

       fileRow.FileEntry.Add(f); 
      } 
      catch (InvalidOperationException) 
      { 

      } 
     } 

나는, 같은 일치하는 파일이없는 경우 상태에서 건물에 대해 이동하는 방법에 조금 확실 해요 다른 일을한다. 내가 좋아하는 뭔가를 생각하고 있었다 :

if (!string.IsNullOrEmpty(fileRow.PDFName)) 
     { 


      FileInfo matchingFile = files.First(df => (df.Extension.ToLower() == ".pdf" && df.Name.Replace(df.Extension, "").ToLower() == fileRow.PDFName)); 


      if (matchingFile != null) 
      { 
       FTPFileEntry f = new FTPFileEntry() 
       { 
        FileExtension = matchingFile.Extension, 
        FileName = matchingFile.Name, 
        Name = titleRow.PDFName, 
        Type = matchingFile.Extension.Trim('.') 
       }; 

       fileRow.FileEntry.Add(f); 

      } 
      else 
      { 
       //Add data to database 
      } 
     } 

나는이와 함께 올바른 방향으로 갈거야 있다면 난 그냥 궁금 해서요? 모든 포인터는 감사하겠습니다 :)

답변

2

그것은 나에게 잘 보입니다. 코드의 첫 번째 코드 조각을 사용하여 catch 섹션의 데이터베이스에 데이터를 추가 할 수도 있지만 예외를 포착하면 성능이 저하 될 수 있습니다 (많지 않지만 그럼에도 불구하고 ...)

관련 문제