在谷歌搜索半小时后,我很惊讶我找不到任何方法在 Windows 上创建名称中带有斜杠的文件。客户要求文件名具有以下结构:
2012 年 4 月 28 日下午 4:07 6,781 12Q1_C125_G_04-17.pdf
到目前为止,我还没有找到任何编码斜杠的方法,因此它们成为文件名而不是路径的一部分。
有什么建议么?
你不能。
正斜杠是不允许在 Windows 文件名中使用的字符之一,请参阅 http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85)。 aspx
以下基本规则使应用程序能够创建和处理文件和目录的有效名称,而不管文件系统如何:
使用句点将基本文件名与目录或文件名中的扩展名分开。
使用反斜杠 (
\
) 分隔路径的组成部分。反斜杠将文件名与其路径分开,并将一个目录名与路径中的另一个目录名分开。您不能在实际文件或目录的名称中使用反斜杠,因为它是将名称分隔为组件的保留字符。根据需要使用反斜杠作为卷名的一部分,例如,对于 Universal,“C:\path\file”中的“C:\”或“\server\share\path\file”中的“\server\share”命名约定 (UNC) 名称。有关 UNC 名称的详细信息,请参阅最大路径长度限制部分。
不要假设区分大小写。例如,将名称 OSCAR、Oscar 和 oscar 视为相同的名称,即使某些文件系统(例如符合 POSIX 的文件系统)可能将它们视为不同的名称。请注意,NTFS 支持 POSIX 语义以区分大小写,但这不是默认行为。有关详细信息,请参阅创建文件。
卷指示符(驱动器号)同样不区分大小写。例如,“D:\”和“d:\”指的是同一个卷。
使用当前代码页中的任何字符作为名称,包括 Unicode 字符和扩展字符集 (128–255) 中的字符,但以下字符除外:
The following reserved characters: < (less than) > (greater than) : (colon) " (double quote) / (forward slash) \ (backslash) | (vertical bar or pipe) ? (question mark) * (asterisk)
整数值零,有时称为 ASCII NUL 字符。
整数表示在 1 到 31 范围内的字符,但允许使用这些字符的备用数据流除外。有关文件流的更多信息,请参阅文件流。
目标文件系统不允许的任何其他字符。
嗯...正斜杠不是 Windows 文件名中的合法字符?
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx