Windowsファイル名のセミコロン?
-
28-09-2019 - |
質問
私のユーザーの1人は、なぜ私のアプリがファイル名でセミコロンをサポートしていない理由を尋ねました。私は自分のコードを介してステップしました。Windows関数getopenfileNameは、セミコロンを含むファイル名を切り捨てているようです。例 "One; 2.Wav" - > "One"。
マイクロソフトは、コロンは許可されていないが、セミコロンは言及しないでください...
http://msdn.microsoft.com/en-us/library/aa365247(vs.85).aspx
彼らは合法かどうか?
編集:..そして、getopenfileName()にファイル名でセミコロンを使用するにはどうすればよいですか?
ああ!、奇妙な - 左に「スクロールされた」を除いて、ファイル名は正しい。したがって、「1つ; 2.wav」は、クリックして左矢印を押すまで「2.wav」のように見えます(それで問題ありません)。ですから、それはバグではなく、奇妙な振る舞いだけです。
解決
以下を除き、拡張文字セット(128–255)のUnicode文字や文字を含む名前の現在のコードページの文字を使用してください。
次の予約された文字:
- <(以下)
(より大きい)
- : :(コロン)
- 「(二重引用)
- /(フォワードスラッシュ)
- (バックスラッシュ)
- | (垂直バーまたはパイプ)
- ? (疑問符)
- (アスタリスク)
- 整数値ゼロ、時にはascii nul文字と呼ばれます。
- これらの文字が許可される代替ストリームを除き、整数表現が1から31までの範囲にある文字。
- ターゲットファイルシステムが許可しない他の文字。
Win7システムのファイル名にセミコロンを追加することができます。予期しないキャラクター(特にスペース)で奇妙なことをするコード、おそらくあなたのコードまたはサードパーティのコードに注意してください。
他のヒント
Windowsハンドブックでは省略されているかもしれませんが、Semicolonは予約済みのキャラクターでもあります。たとえば .dat;.bak "は法的コマンドです。たとえば、「test1.dat+test2.dat test3.dat」をコピーするなど、プラス文字に同じことが法的コマンドです。
True:Windowsを使用すると、ファイル名のセミコロンが許可されます。ただし、そのようなファイルをデータCDまたはDVDディスクに燃やすと、名前は切り捨てられます。これは、先にneroバージョン9を使用したときに経験しました。
はい、許可されています。コマンドラインでそれらを実行している場合は、引用符を入れなければなりません。
はい。セミコロンは、Windowsファイル名の合法的なキャラクターです。しかし、彼らに問題がある他のプログラムがあれば、それは私を驚かせることはないでしょう。