質問

私のユーザーの1人は、なぜ私のアプリがファイル名でセミコロンをサポートしていない理由を尋ねました。私は自分のコードを介してステップしました。Windows関数getopenfileNameは、セミコロンを含むファイル名を切り捨てているようです。例 "One; 2.Wav" - > "One"。

マイクロソフトは、コロンは許可されていないが、セミコロンは言及しないでください...

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

彼らは合法かどうか?

編集:..そして、getopenfileName()にファイル名でセミコロンを使用するにはどうすればよいですか?

ああ!、奇妙な - 左に「スクロールされた」を除いて、ファイル名は正しい。したがって、「1つ; 2.wav」は、クリックして左矢印を押すまで「2.wav」のように見えます(それで問題ありません)。ですから、それはバグではなく、奇妙な振る舞いだけです。

役に立ちましたか?

解決

セミコロンは、NTFSファイルパスで合法です.

以下を除き、拡張文字セット(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ファイル名の合法的なキャラクターです。しかし、彼らに問題がある他のプログラムがあれば、それは私を驚かせることはないでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top