Google を 30 時間検索した後、Windows で名前にスラッシュを含むファイルを作成する方法が見つからないことに驚いています。顧客は、ファイル名が次の構造を持つことを要求します。
2012/04/28 04:07 PM 6,781 12Q1_C125_G_04-17.pdf
これまでのところ、スラッシュをエンコードして、パスではなくファイル名の一部にする方法が見つかりませんでした。
助言がありますか?
できません。
スラッシュは、Windows ファイル名で使用できない文字の 1 つです 。http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247( v=vs.85) を参照してください。 aspx
次の基本的な規則により、アプリケーションは、ファイル システムに関係なく、ファイルとディレクトリの有効な名前を作成および処理できます。
ディレクトリまたはファイルの名前では、ベース ファイル名と拡張子をピリオドで区切ります。
バックスラッシュ (
\
) を使用して、パスのコンポーネントを区切ります。バックスラッシュは、ファイル名とそのパスへのパス、およびパス内の 1 つのディレクトリ名と別のディレクトリ名を分割します。バックスラッシュは、名前をコンポーネントに区切る予約文字であるため、実際のファイルまたはディレクトリの名前には使用できません。必要に応じて、ボリューム名の一部としてバックスラッシュを使用します。たとえば、「C:\path\file」の「C:\」または Universal の「\server\share\path\file」の「\server\share」などです。命名規則 (UNC) 名。UNC 名の詳細については、「パスの最大長の制限」セクションを参照してください。
大文字と小文字を区別しないでください。たとえば、OSCAR、Oscar、および oscar という名前は、一部のファイル システム (POSIX 準拠のファイル システムなど) では異なると見なされる場合でも、同じであると考えてください。NTFS は、大文字と小文字を区別するために POSIX セマンティクスをサポートしていますが、これは既定の動作ではないことに注意してください。詳細については、CreateFile を参照してください。
ボリューム指定子 (ドライブ文字) も同様に大文字と小文字を区別しません。たとえば、「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