2017-09-29 7 views
0

안녕하세요,사용자 폴더 또는 DNN의 다른 폴더가 비어 있는지 확인하는 방법은 무엇입니까?

사용자 폴더 또는 DNN의 다른 폴더에 파일이 없는지 확인하는 데 사용할 수있는 코드는 무엇입니까? 나는 보았다 : Retrieve FileID from DotNetNuke using FileName ... 운이 없다.

파일이 있는지 확인하는 데이 코드를 사용하는 것이 맞습니까? 특정 파일 이름을 지정하고 싶지 않습니다.

FolderManager.Instance.GetFiles(); 

위 코드의 대괄호는 무엇입니까? ? 누군가가 예를 제공하시기 바랍니다 수

답변

0

을 당신은이 작업을 수행 할 수 있습니다

FolderController controller = new FolderController(); 

Dictionary<string, FolderInfo> list = controller.GetFolders(PortalId); 
foreach (var folder in list) 
{ 
    List<IFileInfo> files = FolderManager.Instance.GetFiles(folder.Value).ToList(); 
    Label1.Text += folder.Key + ": " + files.Count(); 
} 
+0

안녕하세요. 'FolderManager.Instance.GetFiles'의 다양한 오버로드가 아니라, 그 중 많은 부분이 사용되지 않습니다. 그러나 대부분은 여전히 ​​작동합니다. – VDWWD

0

은 나뿐만 아니라이 일을 System.IO.Directory를 사용하는 다른 방법을 발견했다.

var userfolderpath = FolderManager.Instance.GetUserFolder(UserInfo).FolderPath; 
    var userfolderpath_ = @"\" + userfolderpath; 
    var portalPath = Server.MapPath("~/Portals/" + this.PortalId); 
    var physicalPath = System.IO.Path.Combine(portalPath, userfolderpath); 

      var list = System.IO.Directory.GetFiles(physicalPath); 
      if (list?.Length > 0) 
      { 
       //sumbit_files.Attributes.Add("style", "display:block;"); 
       //message_container.Attributes.Add("style", "display:block;"); 

       if (userfolderpath != null) 
       { 
        dgrFileList.Columns[0].HeaderText = Localization.GetString("FileHeader", this.LocalResourceFile); 
        dgrFileList.Columns[1].HeaderText = Localization.GetString("FileWriteDate", this.LocalResourceFile); 
        dgrFileList.Columns[2].HeaderText = Localization.GetString("FileDownloadHeader", this.LocalResourceFile); 
        dgrFileList.DataSource = FileUtility.GetSafeFileList(string.Concat(portalPath, userfolderpath_), GetExcludedFiles(), GetSortOrder()); 
        dgrFileList.DataBind(); 
       } 
      }