Windows文件名中的分号

hgtggwj0  于 2023-05-08  发布在  Windows
关注(0)|答案(5)|浏览(303)

我的一个用户问为什么我的应用程序不支持文件名中的分号。我仔细检查了我的代码,Windows函数 GetOpenFileName 似乎截断了任何包含分号的文件名。例如,“一个; two.wav”->“one”。
微软说不允许使用冒号,但它没有提到分号...
Naming Files, Paths, and Namespaces
他们法律的还是不合法?
如何让GetOpenFileName()在文件名中使用分号?
哦!奇怪;文件名是正确的,除了‘滚动’到左边。因此,“one;two.wav”看起来像“two.wav”,直到我单击它并按下左箭头(然后就没事了)。所以这不是一个bug,只是奇怪的行为。

vc9ivgsu

vc9ivgsu1#

Semicolons are legal in NTFS file paths
使用当前代码页中的任何字符作为名称,包括Unicode字符和扩展字符集(128-255)中的字符,但以下字符除外:
以下保留字符:

  • <(小于)
  • >(大于)
  • :(冒号)
  • "(双引号)
  • /(正斜杠)
  • \(反斜杠)
  • |(竖条或管道)
  • ?(问号)
  • *(星号)
  • 整数值零,有时称为ASCII NUL字符。
  • 整数表示形式在1到31范围内的字符,但允许使用这些字符的备用流除外。
  • 目标文件系统不允许的任何其他字符。

我能够在我的Windows 7系统上为文件名添加分号。注意代码,可能是你的代码或第三方代码,它们会使用意外的字符(最明显的是空格)执行奇怪的操作。

ws51t4hk

ws51t4hk2#

虽然在Windows手册中可能会省略分号,但它也是一个保留字符,例如“dir .dat;.巴克”是法律的命令。这同样适用于加号字符,例如“copy test1.dat+test2.dat test3.dat”是法律的命令。

toiithl6

toiithl63#

True:Windows允许在文件名中使用分号。但是,当您将此类文件刻录到数据CD或DVD光盘时,名称会被截断。这是我在使用aHead Nero版本9时遇到的。

dgtucam1

dgtucam14#

是的,他们被允许。只是如果你在命令行中运行它们,你必须在它们里面加上引号。

oiopk7p5

oiopk7p55#

可以。分号是Windows文件名中的法律的字符。不过,如果其他程序也有问题,我也不会感到惊讶。

相关问题