- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在构建一个将在 Windows 和 Ubuntu 系统上运行的 .Net Core 2.0 控制台应用程序。我有一个字符串需要转换成一个安全的文件名。目前我正在使用以下代码来实现这一点:
var safeName = string.Join("-", name.Split(Path.GetInvalidFileNameChars()));
它可以工作,但它会在不同的操作系统上产生不同的结果,因为 Linux 允许使用 Windows 不允许的字符。我喜欢在所有系统上产生相同结果的解决方案。
是否有 GetInvalidFileNameChars
的跨平台版本可以为所有平台返回字符?
最佳答案
我认为 BCL 中没有“跨平台”版本,但您可以通过复制 Windows version of GetInvalidFileNameChars 轻松自己制作一个。 ,因为 Unix version只是其中的一个子集,它们不太可能经常更改:
public static char[] GetInvalidFileNameChars() => new char[]
{
'\"', '<', '>', '|', '\0',
(char)1, (char)2, (char)3, (char)4, (char)5, (char)6, (char)7, (char)8, (char)9, (char)10,
(char)11, (char)12, (char)13, (char)14, (char)15, (char)16, (char)17, (char)18, (char)19, (char)20,
(char)21, (char)22, (char)23, (char)24, (char)25, (char)26, (char)27, (char)28, (char)29, (char)30,
(char)31, ':', '*', '?', '\\', '/'
};
关于linux - 点网核心 : cross platform version of GetInvalidFileNameChars?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47119952/
根据 http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars%28v=vs.110%29.aspx Pat
如何扩展 Path.GetInvalidFileNameChars 以包含我自己的一组在我的应用程序中非法的字符? string invalid = new string(Path.GetInvali
在带有 PowerShell v.2 的 Windows 7 中,我尝试使用 [System.IO.Path]::GetInvalidFileNameChars() 查看它的无效字符列表。 当在提示符
我正在构建一个将在 Windows 和 Ubuntu 系统上运行的 .Net Core 2.0 控制台应用程序。我有一个字符串需要转换成一个安全的文件名。目前我正在使用以下代码来实现这一点: var
这在 OSX 上显示什么?任何人都可以使用 Mono 在他们的机器上运行它吗? foreach (char c in System.IO.Path.GetInvalidPathChars()) {
我是一名优秀的程序员,十分优秀!