2017-09-29 3 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(); 
       } 
      } 
関連する問題