9

在谷歌搜索半小时后,我很惊讶我找不到任何方法在 Windows 上创建名称中带有斜杠的文件。客户要求文件名具有以下结构:

2012 年 4 月 28 日下午 4:07 6,781 12Q1_C125_G_04-17.pdf

到目前为止,我还没有找到任何编码斜杠的方法,因此它们成为文件名而不是路径的一部分。

有什么建议么?

4

3 回答 3

19

你不能。

正斜杠是不允许在 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 范围内的字符,但允许使用这些字符的备用数据流除外。有关文件流的更多信息,请参阅文件流。

目标文件系统不允许的任何其他字符。

于 2012-05-22T19:07:04.673 回答
16
于 2012-05-22T19:07:17.787 回答
-1

嗯...正斜杠不是 Windows 文件名中的合法字符?

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx

于 2012-05-22T19:07:00.923 回答