2014-12-05 25 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

相關問題