2014-12-05 58 views
3

我花了几个小时寻找但没有任何成功。使用c#如何以编程方式检查我的报表服务器上是否存在文件夹

我在编程上使用创建报告文件夹的c#在SSRS中创建快照报告。报告是在这些文件夹中创建的,但为了防止发生错误,我正在删除整个文件夹结构,然后重新创建报告以防止SSRS引发异常。

我正在使用ReportingService2010。

ReportingService2010.DeleteItem(deleteFolderPath); 

...

ReportingService2010.CreateFolder(folder, parentFolder, null); 

- 这是我需要检查,如果该文件夹并报告存在

var ret = CheckExist(linkedReportName, newParent); 

var param = GetReportParameters(existingReportPath); 

ReportingService2010.SetItemParameters(existingReportPath, param); 

行 - 如果我不删除该文件夹结构此错误将在尝试/抛出后抛出

ReportingService2010.CreateLinkedItem(linkedReportName, newParent, existingReportPath, props); 

我需要添加一个方法来查看报表和报表文件夹是否已经创建

回答

-1

另一种可能的选择是直接使用报表服务器数据库中目录表的路径,类型和参数字段。如果你打开SQL Server并查看表格,应该很清楚你需要做什么。

可以使用C#如

SELECT COUNT(*) FROM CATALOG WHERE PATH LIKE '%TheFolderNameImLookingFor%' 

如果计数大于零运行SQL命令,然后将文件夹存在。

你可以根据你的需要改变这一点。文件夹项目的类型为1;报告项目的类型为2,因此您可以使用它来区分报告和文件夹。

+0

我个人倾向于在另一个方向上工作。如果我能从数据中直接获得我想要的,我就是这样做的。如果我不能,我会漫游在.Net框架的广阔而阴暗的走廊上,看看我能否找到可以使用的东西。 :) – BobRodes 2014-12-11 14:23:54

+0

如何_programmatically__在** SSRS服务器***中获取有关**文件夹**的用户(权限,角色)? – 2015-08-18 20:51:40

-4

Directory.Exists()可能适合您。

if (Directory.Exists(folderString)) 
{ 
    // Do something 
} 

不要忘了System.IO命名空间:

using System.IO; 

UPDATE:在未来,如果你正在寻找一个文件,你可以做同样的事情File.Exists(),这是也在System.IO命名空间中。

-4
if (!Directory.Exists(folder)) 
{ 
    ReportingService2010.CreateFolder(folder, parentFolder, null); 
} 
+0

感谢您的及时回复。如果您需要在c:\驱动器上查找文件夹或文件,这些功能非常棒,但我正在查找代码来检查文件夹是否存在于Report Servicer上 - 将报告部署到哪个文件夹中的TargetReportFolder和TargetServerURL 。我曾看过ReportingService2010.FindItems(),但我不确定这是否正确。 道歉,如果我在我以前的描述不具体。 – user1221584 2014-12-08 15:19:09

+0

@ user1221584:你已经足够具体了。这些回答者只能阅读问题标题。 FWIW'FindItems'好像你在我的正确轨道上。 – 2014-12-08 19:44:24

0

如何删除文件夹,如果它们存在使用ListChildren;

 var items = ReportingService2010.ListChildren(parentFolder, false); 
     if (items.Where(x => x.TypeName == "Folder").Any(x => x.Name == folder)) 
     { 
      ReportingService2010.DeleteItem(folder, parentFolder, null); 
     } 
+0

如何_programmatically__在*** SSRS服务器***中获取有关**文件夹**的用户(权限,角色)? – 2015-08-18 20:51:54

相关问题