windows - Windows 文件名中元数据的分隔符

标签 windows character filenames delimiter

我正在维护一个应用程序,该应用程序将文件传输到另一个系统,并使用结构化文件名来包含元数据(包括语言代码)。当前应用程序使用两个字符的语言代码和短划线/连字符作为分隔符。

例如。加拿大-EN-ProdName-ProdCode.txt

我正在将其转换为使用 IETF 语言代码,因此破折号分隔符不起作用,需要替换。我正在尝试确定一个分隔符以避免将来的错误,并且正在考虑波浪号〜。

例如。加拿大~en-GB~ProdName~ProdCode.txt

这仅在 Windows Sever 2003 + 系统上使用。我当然没有想出这个解析文件名以获取元数据的系统。不幸的是,我无法将其包含在文件本身中,并且目标系统期望语言代码采用带破折号的 IETF 格式。

对于在文件名中使用波浪号或可能使用更好的字符的潜在问题有什么想法吗?我只是在寻求第二意见,以防我忽略了可能的失败。我相信 Windows 在将长文件名缩短为 8.3 格式时会使用波浪号,但我不认为这是一个问题,因为操作系统可以处理 lang 文件名。

最佳答案

波浪号可能没问题,但是旧的下划线 _ 有什么问题吗?它在 Windows 或 UNIX 上没有特殊含义,并且使名称相对容易阅读。如果没有其他特殊考虑,我会纯粹出于偏执而避免使用波形符,因为正如您提到的,Windows 有时确实将其用作特殊字符。

关于windows - Windows 文件名中元数据的分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3315352/

相关文章:

windows - "Vagrant up"卡住验证 Hyper-v 提供程序

c++ - 如何使用消息框而不是 wcout

python - 如何在 Python 中重写 DataFrame 中的列的字段?

c++ - 将 URL 编码为安全的文件名字符串

c++ - 将 Windows 可执行文件用作 DLL 时如何初始化 C 运行时

mysql - 限制 mysql_query(select) 查找的字符

java - BlueJ - 我的程序编译没有错误但没有运行

android - 如何从 ImageView (ANDROID) 获取文件名

file - 使用带文件名的存储桶在 s3 存储桶中搜索文件

windows - 使用 powershell 更改注册表二进制数据