我希望能够从python检查给定的字符串是否可以是有效的跨平台文件夹名称-下面是我遇到的具体问题(文件夹名称以.结尾),但我相信还有一些特殊情况(例如:con等)。
有图书馆吗?
从python(3.2)开始,我在Windows(7)上创建了一个文件夹,文件名以点('.')结尾,例如:(不带方括号):[我在假期里做了什么,第二部分]
当创建的文件夹是ftp'd(到Linux,但我想这是无关紧要的),它没有点在它了(作为回报,这打破了很多超链接)。
我已经从命令行检查过了,文件夹的文件名中似乎没有".“
mkdir tmp.
dir
cd tmp
cd ..\tmp.
显然,在文件夹名称的末尾添加一个点会被忽略,例如:
cd c:\Users.
正如预期的那样。
3条答案
按热度按时间ru9i0ody1#
不,很遗憾没有办法做到这一点。对于windows,你基本上可以使用下面的代码来删除所有非法字符-但是如果有人仍然有一个FAT文件系统,你也必须处理这些,因为这些是更严格的。基本上,您必须阅读所有文件系统的文档,并列出一个完整的列表。以下是作为起点的第一个问题:
然后你需要一些“禁止”的名单,以及摆脱COM。几乎是一团糟...而这忽略了Linux(尽管它是相当轻松的afaik)
bq9c1y662#
不要以空格或句点结尾文件或目录名。尽管底层文件系统可能支持此类名称,但Windows shell和用户界面不支持。
http://msdn.microsoft.com/en-us/library/aa365247.aspx#naming_conventions
该页面将给予您有关其他非法名称的信息,也就是说,为Windows。包括你自己说的骗局。
如果你尊重这些(看起来很苛刻的)规则,我认为你在Linux和大多数其他系统上也是安全的。
acruukt93#
我自己做了一个功能。我使用@Voo answer作为开始,并添加了基于this answer的检查。
请,如果有人发现我错过了什么可以自由添加或评论!