![](/img/trans.png)
[英]how can i check a branch exists in svn server or not using SharpSVN API in C#
[英]Using c# how can I programmatically check if a folder exists on my reporting server
我花了好幾個小時但沒有成功。
我使用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);
- 如果我不刪除文件夾結構,則會在try / Catch中拋出錯誤
ReportingService2010.CreateLinkedItem(linkedReportName, newParent, existingReportPath, props);
我需要添加一個方法來查看是否已創建報告和報告文件夾
另一種可能的替代方法是直接使用報表服務器數據庫中Catalog表的路徑,類型和parentid字段。 如果您打開SQL Server並查看該表,則應該非常清楚您需要做什么。
您可以使用C#來運行SQL命令,例如
SELECT COUNT(*) FROM CATALOG WHERE PATH LIKE '%TheFolderNameImLookingFor%'
如果計數大於零,則該文件夾存在。
您可以根據需要改變這一點。 文件夾項的類型為1; 報表項的類型為2,因此您可以使用它來區分報表和文件夾。
如何使用ListChildren
刪除文件夾;
var items = ReportingService2010.ListChildren(parentFolder, false);
if (items.Where(x => x.TypeName == "Folder").Any(x => x.Name == folder))
{
ReportingService2010.DeleteItem(folder, parentFolder, null);
}
我認為最好的方法是ReportService2010.GetItemType()方法。 這將返回一個字符串( ReportingService2010.ListItemTypes()方法),包括不存在的可能值"Unknown"
(而不是拋出異常)或"Folder"
。
Directory.Exists()可能適合您。
if (Directory.Exists(folderString))
{
// Do something
}
不要忘記System.IO
命名空間:
using System.IO;
更新 :將來,如果您正在尋找文件,您可以使用File.Exists()
執行相同的File.Exists()
,該文件也位於System.IO
命名空間中。
if (!Directory.Exists(folder))
{
ReportingService2010.CreateFolder(folder, parentFolder, null);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.