如何检查是不是存在自定义文化
Posted
技术标签:
【中文标题】如何检查是不是存在自定义文化【英文标题】:How to check if custom culture exists如何检查是否存在自定义文化 【发布时间】:2021-09-08 10:30:34 【问题描述】:我创建了一种自定义文化,即“gh-es”。我正在尝试检查它是否已经注册。如果文化已注册,它工作正常,但如果没有,它只会在启动时抛出错误。
我无法找到如何检查文化是否存在或检查其是否存在
$CustomCulture= [cultureinfo]::GetCultureInfo('gh-es')
If($CustomCulture -ne null)
Write-output "culture already registered"
Else
$CultureName = 'gh-es'
$BaseCulture=[cultureinfo]::GetCultureInfo('es-US')
$BaseRegion = New-Object System.Globalization.RegionInfo 'es-US'
try
# Set up CultureAndRegionInfoBuilder
Add-Type -AssemblyName sysglobl
$CultureBuilder = New-Object System.Globalization.CultureAndRegionInfoBuilder
@($CultureName,[System.Globalization.CultureAndRegionModifiers]::None) $CultureBuilder.LoadDataFromCultureInfo($BaseCulture)
$CultureBuilder.LoadDataFromRegionInfo($BaseRegion)
$CultureBuilder.Register()
catch
throw
【问题讨论】:
[1] 请在问题中发布您的代码 - 包含在格式标记中。 ///// [2] 请在问题中发布您的完整错误文本 - 包含在格式标记中。 ///// [3]你看过try/catch
处理错误的结构吗?
我已经添加了相同的代码,如果文化没有注册,我在第一行本身就会出错
@ShianJA 你忘了回答 Lee_Dailey 的第三个问题。
是的,我用过,但是如果我们只是检查一个值是否存在,为什么要使用 try
@ShianJA - 请查看我的答案,了解使用错误处理来处理文化检查的示例。
【参考方案1】:
这就是我在检查文化时使用try/catch
处理错误的意思...
try
[cultureinfo]::GetCultureInfo('666-santa')
catch
'something glitched'
输出 = something glitched
没有try/catch
,输出是错误消息...
Exception calling "GetCultureInfo" with "1" argument(s): "Culture is not supported.
Parameter name: name
666-santa is an invalid culture identifier."
At line:1 char:1
+ [cultureinfo]::GetCultureInfo('666-santa')
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : CultureNotFoundException
【讨论】:
以上是关于如何检查是不是存在自定义文化的主要内容,如果未能解决你的问题,请参考以下文章
检查下载中的自定义文件夹中是不是存在文件 - 不推荐使用 getExternalStoragePublicDirectory