diff options
Diffstat (limited to 'src/WixToolset.Core/WindowsInstallerStandard.cs')
-rw-r--r-- | src/WixToolset.Core/WindowsInstallerStandard.cs | 260 |
1 files changed, 0 insertions, 260 deletions
diff --git a/src/WixToolset.Core/WindowsInstallerStandard.cs b/src/WixToolset.Core/WindowsInstallerStandard.cs deleted file mode 100644 index 90a53e6a..00000000 --- a/src/WixToolset.Core/WindowsInstallerStandard.cs +++ /dev/null | |||
@@ -1,260 +0,0 @@ | |||
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | ||
2 | |||
3 | namespace WixToolset.Core | ||
4 | { | ||
5 | using System.Collections.Generic; | ||
6 | using WixToolset.Data; | ||
7 | using WixToolset.Data.Tuples; | ||
8 | |||
9 | internal class WindowsInstallerStandard | ||
10 | { | ||
11 | private static readonly HashSet<string> standardActionNames = new HashSet<string> | ||
12 | { | ||
13 | "AllocateRegistrySpace", | ||
14 | "AppSearch", | ||
15 | "BindImage", | ||
16 | "CCPSearch", | ||
17 | "CostFinalize", | ||
18 | "CostInitialize", | ||
19 | "CreateFolders", | ||
20 | "CreateShortcuts", | ||
21 | "DeleteServices", | ||
22 | "DisableRollback", | ||
23 | "DuplicateFiles", | ||
24 | "ExecuteAction", | ||
25 | "FileCost", | ||
26 | "FindRelatedProducts", | ||
27 | "ForceReboot", | ||
28 | "InstallAdminPackage", | ||
29 | "InstallExecute", | ||
30 | "InstallExecuteAgain", | ||
31 | "InstallFiles", | ||
32 | "InstallFinalize", | ||
33 | "InstallInitialize", | ||
34 | "InstallODBC", | ||
35 | "InstallServices", | ||
36 | "InstallSFPCatalogFile", | ||
37 | "InstallValidate", | ||
38 | "IsolateComponents", | ||
39 | "LaunchConditions", | ||
40 | "MigrateFeatureStates", | ||
41 | "MoveFiles", | ||
42 | "MsiConfigureServices", | ||
43 | "MsiPublishAssemblies", | ||
44 | "MsiUnpublishAssemblies", | ||
45 | "PatchFiles", | ||
46 | "ProcessComponents", | ||
47 | "PublishComponents", | ||
48 | "PublishFeatures", | ||
49 | "PublishProduct", | ||
50 | "RegisterClassInfo", | ||
51 | "RegisterComPlus", | ||
52 | "RegisterExtensionInfo", | ||
53 | "RegisterFonts", | ||
54 | "RegisterMIMEInfo", | ||
55 | "RegisterProduct", | ||
56 | "RegisterProgIdInfo", | ||
57 | "RegisterTypeLibraries", | ||
58 | "RegisterUser", | ||
59 | "RemoveDuplicateFiles", | ||
60 | "RemoveEnvironmentStrings", | ||
61 | "RemoveExistingProducts", | ||
62 | "RemoveFiles", | ||
63 | "RemoveFolders", | ||
64 | "RemoveIniValues", | ||
65 | "RemoveODBC", | ||
66 | "RemoveRegistryValues", | ||
67 | "RemoveShortcuts", | ||
68 | "ResolveSource", | ||
69 | "RMCCPSearch", | ||
70 | "ScheduleReboot", | ||
71 | "SelfRegModules", | ||
72 | "SelfUnregModules", | ||
73 | "SetODBCFolders", | ||
74 | "StartServices", | ||
75 | "StopServices", | ||
76 | "UnpublishComponents", | ||
77 | "UnpublishFeatures", | ||
78 | "UnregisterClassInfo", | ||
79 | "UnregisterComPlus", | ||
80 | "UnregisterExtensionInfo", | ||
81 | "UnregisterFonts", | ||
82 | "UnregisterMIMEInfo", | ||
83 | "UnregisterProgIdInfo", | ||
84 | "UnregisterTypeLibraries", | ||
85 | "ValidateProductID", | ||
86 | "WriteEnvironmentStrings", | ||
87 | "WriteIniValues", | ||
88 | "WriteRegistryValues", | ||
89 | }; | ||
90 | |||
91 | private static readonly WixActionTuple[] standardActions = new[] | ||
92 | { | ||
93 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
94 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
95 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
96 | |||
97 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallExecute", AccessModifier.Public)) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
98 | |||
99 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallExecuteAgain", AccessModifier.Public)) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
100 | |||
101 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
102 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
103 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
104 | |||
105 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallFiles", AccessModifier.Public)) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
106 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallFiles", AccessModifier.Public)) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
107 | |||
108 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallAdminPackage", AccessModifier.Public)) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
109 | |||
110 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
111 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
112 | new WixActionTuple(null, new Identifier("InstallUISequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence }, | ||
113 | |||
114 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
115 | new WixActionTuple(null, new Identifier("AdminUISequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence }, | ||
116 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
117 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
118 | new WixActionTuple(null, new Identifier("InstallUISequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence }, | ||
119 | |||
120 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
121 | new WixActionTuple(null, new Identifier("AdminUISequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence }, | ||
122 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
123 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
124 | new WixActionTuple(null, new Identifier("InstallUISequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence }, | ||
125 | |||
126 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
127 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
128 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
129 | |||
130 | new WixActionTuple(null, new Identifier("AdminUISequence/ExecuteAction", AccessModifier.Public)) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence }, | ||
131 | new WixActionTuple(null, new Identifier("InstallUISequence/ExecuteAction", AccessModifier.Public)) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence }, | ||
132 | |||
133 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CreateShortcuts", AccessModifier.Public)) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
134 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CreateShortcuts", AccessModifier.Public)) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
135 | |||
136 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/MsiPublishAssemblies", AccessModifier.Public)) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
137 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/MsiPublishAssemblies", AccessModifier.Public)) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
138 | |||
139 | //<action name="PublishComponents" sequence="6200" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
140 | //<action name="PublishFeatures" sequence="6300" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
141 | //<action name="PublishProduct" sequence="6400" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
142 | //<action name="RegisterClassInfo" sequence="4600" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
143 | //<action name="RegisterExtensionInfo" sequence="4700" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
144 | //<action name="RegisterMIMEInfo" sequence="4900" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
145 | //<action name="RegisterProgIdInfo" sequence="4800" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
146 | //<action name="AllocateRegistrySpace" condition="NOT Installed" sequence="1550" InstallExecuteSequence="yes" /> | ||
147 | //<action name="AppSearch" sequence="50" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
148 | //<action name="BindImage" sequence="4300" InstallExecuteSequence="yes" /> | ||
149 | //<action name="CreateFolders" sequence="3700" InstallExecuteSequence="yes" /> | ||
150 | //<action name="DuplicateFiles" sequence="4210" InstallExecuteSequence="yes" /> | ||
151 | //<action name="FindRelatedProducts" sequence="25" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
152 | //<action name="InstallODBC" sequence="5400" InstallExecuteSequence="yes" /> | ||
153 | //<action name="InstallServices" condition="VersionNT" sequence="5800" InstallExecuteSequence="yes" /> | ||
154 | //<action name="MsiConfigureServices" condition="VersionNT>=600" sequence="5850" InstallExecuteSequence="yes" /> | ||
155 | //<action name="IsolateComponents" sequence="950" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
156 | //<action name="LaunchConditions" sequence="100" AdminExecuteSequence="yes" AdminUISequence="yes" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
157 | //<action name="MigrateFeatureStates" sequence="1200" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
158 | //<action name="MoveFiles" sequence="3800" InstallExecuteSequence="yes" /> | ||
159 | //<action name="PatchFiles" sequence="4090" AdminExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
160 | //<action name="ProcessComponents" sequence="1600" InstallExecuteSequence="yes" /> | ||
161 | //<action name="RegisterComPlus" sequence="5700" InstallExecuteSequence="yes" /> | ||
162 | //<action name="RegisterFonts" sequence="5300" InstallExecuteSequence="yes" /> | ||
163 | //<action name="RegisterProduct" sequence="6100" InstallExecuteSequence="yes" /> | ||
164 | //<action name="RegisterTypeLibraries" sequence="5500" InstallExecuteSequence="yes" /> | ||
165 | //<action name="RegisterUser" sequence="6000" InstallExecuteSequence="yes" /> | ||
166 | //<action name="RemoveDuplicateFiles" sequence="3400" InstallExecuteSequence="yes" /> | ||
167 | //<action name="RemoveEnvironmentStrings" sequence="3300" InstallExecuteSequence="yes" /> | ||
168 | //<action name="RemoveFiles" sequence="3500" InstallExecuteSequence="yes" /> | ||
169 | //<action name="RemoveFolders" sequence="3600" InstallExecuteSequence="yes" /> | ||
170 | //<action name="RemoveIniValues" sequence="3100" InstallExecuteSequence="yes" /> | ||
171 | //<action name="RemoveODBC" sequence="2400" InstallExecuteSequence="yes" /> | ||
172 | //<action name="RemoveRegistryValues" sequence="2600" InstallExecuteSequence="yes" /> | ||
173 | //<action name="RemoveShortcuts" sequence="3200" InstallExecuteSequence="yes" /> | ||
174 | //<action name="SelfRegModules" sequence="5600" InstallExecuteSequence="yes" /> | ||
175 | //<action name="SelfUnregModules" sequence="2200" InstallExecuteSequence="yes" /> | ||
176 | //<action name="SetODBCFolders" sequence="1100" InstallExecuteSequence="yes" /> | ||
177 | |||
178 | |||
179 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CCPSearch", AccessModifier.Public)) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
180 | new WixActionTuple(null, new Identifier("InstallUISequence/CCPSearch", AccessModifier.Public)) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Condition="NOT Installed" }, | ||
181 | |||
182 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/DeleteServices", AccessModifier.Public)) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, | ||
183 | |||
184 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RMCCPSearch", AccessModifier.Public)) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
185 | new WixActionTuple(null, new Identifier("InstallUISequence/RMCCPSearch", AccessModifier.Public)) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Condition="NOT Installed" }, | ||
186 | |||
187 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/StartServices", AccessModifier.Public)) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, | ||
188 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/StopServices", AccessModifier.Public)) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, | ||
189 | |||
190 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/MsiUnpublishAssemblies", AccessModifier.Public)) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
191 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnpublishComponents", AccessModifier.Public)) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
192 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnpublishFeatures", AccessModifier.Public)) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
193 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterClassInfo", AccessModifier.Public)) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
194 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterComPlus", AccessModifier.Public)) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
195 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterExtensionInfo", AccessModifier.Public)) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
196 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterFonts", AccessModifier.Public)) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
197 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterMIMEInfo", AccessModifier.Public)) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
198 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterProgIdInfo", AccessModifier.Public)) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
199 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterTypeLibraries", AccessModifier.Public)) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
200 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/ValidateProductID", AccessModifier.Public)) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
201 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteEnvironmentStrings", AccessModifier.Public)) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
202 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteIniValues", AccessModifier.Public)) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
203 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteRegistryValues", AccessModifier.Public)) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
204 | }; | ||
205 | |||
206 | private static readonly HashSet<string> standardDirectories = new HashSet<string> | ||
207 | { | ||
208 | "TARGETDIR", | ||
209 | "AdminToolsFolder", | ||
210 | "AppDataFolder", | ||
211 | "CommonAppDataFolder", | ||
212 | "CommonFilesFolder", | ||
213 | "DesktopFolder", | ||
214 | "FavoritesFolder", | ||
215 | "FontsFolder", | ||
216 | "LocalAppDataFolder", | ||
217 | "MyPicturesFolder", | ||
218 | "PersonalFolder", | ||
219 | "ProgramFilesFolder", | ||
220 | "ProgramMenuFolder", | ||
221 | "SendToFolder", | ||
222 | "StartMenuFolder", | ||
223 | "StartupFolder", | ||
224 | "System16Folder", | ||
225 | "SystemFolder", | ||
226 | "TempFolder", | ||
227 | "TemplateFolder", | ||
228 | "WindowsFolder", | ||
229 | "CommonFiles64Folder", | ||
230 | "ProgramFiles64Folder", | ||
231 | "System64Folder", | ||
232 | "NetHoodFolder", | ||
233 | "PrintHoodFolder", | ||
234 | "RecentFolder", | ||
235 | "WindowsVolume", | ||
236 | }; | ||
237 | |||
238 | /// <summary> | ||
239 | /// Find out if an action is a standard action. | ||
240 | /// </summary> | ||
241 | /// <param name="actionName">Name of the action.</param> | ||
242 | /// <returns>true if the action is standard, false otherwise.</returns> | ||
243 | public static bool IsStandardAction(string actionName) | ||
244 | { | ||
245 | return standardActionNames.Contains(actionName); | ||
246 | } | ||
247 | |||
248 | public static WixActionTuple[] StandardActions() => standardActions; | ||
249 | |||
250 | /// <summary> | ||
251 | /// Find out if a directory is a standard directory. | ||
252 | /// </summary> | ||
253 | /// <param name="directoryName">Name of the directory.</param> | ||
254 | /// <returns>true if the directory is standard, false otherwise.</returns> | ||
255 | public static bool IsStandardDirectory(string directoryName) | ||
256 | { | ||
257 | return standardDirectories.Contains(directoryName); | ||
258 | } | ||
259 | } | ||
260 | } | ||