经过半个小时search谷歌,我很惊讶,我无法find任何方式在Windows上创build一个文件名称的斜杠。 客户要求文件名具有以下结构:
04/28/2012 04:07 PM 6,781 12Q1_C125_G_04-17.pdf
到目前为止,我还没有find任何方法来编码斜线,所以他们成为文件名的一部分,而不是path。
有什么build议么?
你不能。
正斜杠是不允许在Windows文件名中使用的字符之一,请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85)。 ASPX
以下基本规则使应用程序能够创建和处理文件和目录的有效名称,而不管文件系统如何:
使用句号将目录或文件名称中的基本文件名与扩展名分开。
使用反斜杠(
\
)来分隔路径的组件。 反斜线将路径中的文件名从路径中分割出来,并将路径中另一个目录名中的一个目录名分割出来。 您不能在实际文件或目录的名称中使用反斜杠,因为它是将名称分隔成组件的保留字符。根据需要使用反斜杠作为卷名的一部分,例如“C:\ path \ file”中的“C:\”或“\ server \ share \ path \ file”中的“\ server \ share”命名公约(UNC)的名称。 有关UNC名称的更多信息,请参阅最大路径长度限制部分。
不要假定区分大小写。 例如,即使某些文件系统(如符合POSIX的文件系统)可能认为它们不同,OSCAR,Oscar和oscar的名称也是相同的。 请注意,NTFS支持区分大小写的POSIX语义,但这不是默认行为。 有关更多信息,请参阅CreateFile。
音量指示符(驱动器号)同样不区分大小写。 例如,“D:\”和“d:\”指的是相同的音量。
使用当前代码页中的任何字符作为名称,包括扩展字符集(128-255)中的Unicode字符和字符,以下情况除外:
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安装都不会让你在其中创建带有斜杠的文件。 即使可能以某种方式,通过深入的魔法,它可能会搞砸几乎所有的应用程序,包括Windows资源管理器。
不过,你可能会滥用windows的unicode功能。
使用∕
(这不是一个正斜杠,它是“除法斜杠”,见http://www.fileformat.info/info/unicode/char/2215/index.htm )创建一个文件的名字工作得很好,例如。
嗯…正斜杠不是Windows文件名中的合法字符?
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx