我目前正在编写一个用户可以添加安全文件夹的模块。
但是实例方法需要一个实例名称的参数,我不知道它们是什么意思。有人可以向我解释一下吗?
DotNetNuke.Services.FileSystem.SecureFolderProvider.Instance("Test2").AddFolder(txtFolderName.Text, new FolderMappingInfo
{
PortalID = base.PortalId,
MappingName = txtFolderName.Text
});
有什么建议我做错了吗?
答案 0 :(得分:1)
在garethbh的帮助下,我想出了这个:
// Get folder mapping
var folderMapping = FolderMappingController.Instance.GetFolderMapping(PortalId, "Secure");
// Add folder and get the result back of the folder information
var folder = FolderManager.Instance.AddFolder(new FolderMappingInfo
{
FolderProviderType = folderMapping.FolderProviderType,
FolderMappingID = 9,
Priority = 2,
PortalID = PortalId,
}, portalFilePath);
这对我来说很好。
答案 1 :(得分:0)
您需要传入文件夹映射提供程序类型的名称。如果您搜索SecureFolderProvider的基类(FolderProvider)的用法,您将看到您需要的内容。
例如:
var folderMapping = FolderMappingController.Instance.GetFolderMapping(PortalId, "Secure");
if (folderMapping != null)
{
SecureFolderProvider.Instance(folderMapping.FolderProviderType).AddFolder(folderPath, folderMapping);
}
之前我从未实际使用过安全文件夹提供程序,所以我只是猜测你需要一个带有'安全'映射名称的那个(但你可能想根据你的需要使用'数据库'或创建你自己的文件夹提供商)。有关可用类型,请参阅数据库中的FolderMappings表。
来自DNN wiki http://www.dnnsoftware.com/wiki/Page/Folder-Types和http://www.dnnsoftware.com/wiki/Page/Folder-providers