C#将任何字符串转换为安全的跨平台文件名?
给定任何.NET字符串,在任何操作系统上将其转换为安全文件名的C#算法是什么?Windows、iOS、Android、Linux?目标是尽可能保留原始字符串,同时使其在任何平台上都可以安全地用作文件名。尝试使用System.IO.Path类中的GetInvalidFileNameChars()方法C#将任何字符串转换为安全的跨平台文件名?,c#,ios,xamarin,cross-platform,C#,Ios,Xamarin,Cross Platform,给定任何.NET字符串,在任何操作系统上将其转换为安全文件名的C#算法是什么?Windows、iOS、Android、Linux?目标是尽可能保留原始字符串,同时使其在任何平台上都可以安全地用作文件名。尝试使用System.IO.Path类中的GetInvalidFileNameChars()方法 System.IO.Path.GetInvalidFileNameChars() Base36可能很管用。你不想假设你的文件系统是敏感的。你还需要考虑文件名的长度,因为它不同于系统到系统。我不知道你
System.IO.Path.GetInvalidFileNameChars()
Base36可能很管用。你不想假设你的文件系统是敏感的。你还需要考虑文件名的长度,因为它不同于系统到系统。我不知道你可以使用的任何内置方法。我自己生成了Windows到Linux的检查。您对转换有任何限制吗?例如“应该类似于原始字符串”或“原始字符串的1对1映射”或长度或字符集限制?在非常通用的情况下,转换将与创建新guid一样有用。。。就像将10K长的汉字字符串转换为纯ASCII一样……是的,目标是尽可能保留原始字符串,同时使其在任何平台上都可以安全地用作文件名。这是否可以处理Windows文件名可以是
“Space Here”
,而对于Linux,它将其转换为“Space\Here”的情况
?我知道我以前遇到过Windows到Linux的间距问题,只是好奇而已