如何检查DNN中的用户文件夹或任何其他文件夹是否为空?

时间:2017-09-29 15:00:54

标签: dotnetnuke

您好,

我可以使用哪些代码来检查用户文件夹或DNN中的任何其他文件夹是否没有文件?我看过:Retrieve FileID from DotNetNuke using FileName ......但没有运气。

此代码是否正确用于检查文件是否存在?我不想指定特定的文件名。

FolderManager.Instance.GetFiles(); 

上面代码的括号内应该包含哪些内容?有人可以提供一个例子吗?

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分: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();
                }
            }