system.io.path说合法字符是非法的

时间:2012-01-09 17:38:22

标签: .net file filenames

我正在编写一个处理用户归档的util,其中一个测试归档文件名为"".export。在我的代码中,我循环遍历所有文件扩展名,并检查文件扩展名以忽略某些文件类型(例如thumb.db)。

当我写Path.GetExtension(v)Path.GetFileName(v)时,我收到一条消息“路径中存在非法字符”的异常。 "显然是非法的,但是在Windows上 - 尽管我认为这是非法的我最初认为该字符是')我可以使用该文件名。我可以告诉它允许这个角色吗?我需要编写自己的GetExtension和GetFileName吗?我该怎么办?

1 个答案:

答案 0 :(得分:6)

不,您无法强制文件系统接受它不想要的字符。 Windows不允许您在文件名中包含引号。

您需要删除引号(可能用下划线或类似内容替换它们),或者为您正在使用的文件系统中无效的字符计算某种形式的转义。