2010-05-10 70 views
0

我的计算机上有一个驱动器,它具有文件夹 - 其中一些文件夹中有大量文件夹,并且还包含其他文件夹。
我需要迁移这些文档到SharePoint,但这些文件夹和文件的大量有无效字符,将不会允许我迁移到SharePoint(即“/ \ &等)钻入驱动器并更改文件夹名称和文档名称

有什么办法写在C#中,基本上将删除所有文件夹和文件,这些无效字符的东西吗?

请帮帮忙!

回答

1

是,要做到这一点是通过目录结构递归来钻去,并为每个文件名称的方式,检查它是否有效,如果无效,则创建一个有效的文件名,并上传到Sharepoint。

您可以制作匹配所有不允许的字符的正则表达式,并将其替换为允许的字符,例如下划线。如果您需要名称是唯一的,并且您担心可能会使用此方法创建重复名称,请将使用过的所有名称(即上传到Sharepoint)存储为HashSet,然后在使用生成的名称之前检查该名称。如果名称已经存在,您可以添加前缀或后缀,用于人为干预的标志,或根据您的要求做其他事情。

+0

Microsoft.SharePoint.Utilities.SPUrlUtility.IndexOfIllegalCharInUrlLeafName(string strLeafName)将有助于检测无效字符。 – Stefan 2010-05-11 11:30:59

+0

我是新来的正则表达式 - 所以如果我想删除以下字符:“#%&*:< >?\/{|}〜我将如何使用正则表达式编写此? – yeahumok 2010-05-12 20:14:43