gpt4 book ai didi

c# - 哪些字符对于 ZIP 文件中的文件夹名称无效?

转载 作者:可可西里 更新时间:2023-11-01 10:06:26 25 4
gpt4 key购买 nike

这是场景。

我正在调用一个数据库并提取大约 3000 条记录,这些记录是父文档的子节点,我使用这些子节点在树上进行备份以生成一个平面文件夹名称,如下所示:

Entertainment Categories ~ Artistic Entertainment ~ Calligraphy Artists ~ Megumi - Japanese Calligraphy Artist Sussex ~ 6546

从 parent 一直到 child ,然后是 child ID。

然后我做的是遍历这些文件夹名称并使用该名称创建一个新文件夹,这一切都很好,我使用 Path.GetInvalidFileNameChars 通过循环运行这些名称删除任何会阻止文件夹创建失败的字符。

但是,在使用 Windows 中内置的压缩​​功能压缩这些文件夹时(右键单击 > 发送到 > 压缩的 zip 文件夹),我不断收到错误消息:

[Folder name] cannot be compressed because it includes characters that cannot be used in a compressed folder, such as [foo]. You should rename this file or directory.

如果错误消息实际上告诉我不能包含在文件夹名称中的字符范围但事实并非如此,那就没问题了,所以每当我对字符进行替换时,我都会在错误中弹出一个新字符消息,这就是我目前正在做的清理文件夹名称的操作:

private static void CleanPath(StringBuilder path)
{
List<string> invalidFolderCharacters = Path.GetInvalidFileNameChars()
.Select(x => x.ToString()).ToList();
invalidFolderCharacters.Add("–");
invalidFolderCharacters.Add("`");
invalidFolderCharacters.Add("\'");
invalidFolderCharacters.Add("′");

foreach (string s in invalidFolderCharacters)
{
path.Replace(s, string.Empty);
}
}

如您所见,每次出现新错误时,我都必须添加 GetInvalidFileNameChars() 返回的字符。

所以我的问题是 - .NET 框架中是否有一个我可以使用的内置函数,它会为我提供文件/文件夹名称中不允许的字符以及压缩文件夹名称中不允许的字符?谁能告诉我压缩文件夹名称中不允许使用哪些字符,以便我自己创建一个?

最佳答案

还有一个方法叫Path.GetInvalidPathChars

关于c# - 哪些字符对于 ZIP 文件中的文件夹名称无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20539394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com