在搜索谷歌半小时后,我很惊讶我找不到任何方法在Windows上使用名称中的斜杠创建文件。客户要求文件名具有以下结构:
04/28/2012 04:07 PM 6,781 12Q1_C125_G_04-17.pdf
到目前为止,我还没有找到任何编码斜杠的方法,因此它们会成为文件名而不是路径的一部分。
任何建议?
答案 0 :(得分:14)
你不能。
正斜杠是不允许在Windows文件名中使用的字符之一,请参阅 http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
以下基本规则使应用程序能够创建和 处理文件和目录的有效名称,而不管文件是什么 系统:
使用句点将基本文件名与目录或文件名称中的扩展名分开。
使用反斜杠(
\
)分隔路径的组件。反斜杠将文件名与路径中的文件名分开,并从路径中的另一个目录名中分隔一个目录名。您不能在实际文件或目录的名称中使用反斜杠,因为它是将名称分隔为组件的保留字符。根据需要使用反斜杠作为卷名的一部分,例如,“C:\ path \ file”中的“C:\”或“\ server \ share”中的“C:\” 通用命名约定(UNC)的“\ server \ share \ path \ file” 名。有关UNC名称的详细信息,请参阅最大路径 长度限制部分。
不要假设区分大小写。例如,考虑名称OSCAR,Oscar和oscar是相同的,即使某些文件系统(例如符合POSIX的文件系统)可能将它们视为 不同。请注意,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范围内的字符,但允许使用这些字符的备用数据流除外。有关文件流的更多信息,请参阅文件 流。
目标文件系统不允许的任何其他字符。
答案 1 :(得分:7)
至少我见过的所有Windows安装都不会让你创建带有斜杠的文件。 即使有可能,通过做深度魔术,它可能会搞砸几乎所有应用程序,包括Windows资源管理器。
但是,你可以滥用windows的unicode功能。使用∕
创建一个文件(这不是正斜杠,它是“除法斜杠”,请参阅http://www.fileformat.info/info/unicode/char/2215/index.htm),其名称可以正常工作,例如。
答案 2 :(得分:0)
嗯...正斜杠不是Windows文件名中的合法字符?
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx