web-dev-qa-db-ja.com

\ /:*などの特殊文字を使用してフォルダ名またはファイル名を作成する方法"<> |

私の問題は、\ /:*などの特殊文字を使用してフォルダまたはファイルの名前を指定できないことです。 "<> | WindowsベースのO.S.では、これは私にとって非常に重要であり、このタイプの文字を含むファイル/フォルダーの名前を指定します。

私はすでにこの問題について非常に多くのサイトを検索して参照していますが、すべては絶望的です。マイクロソフトのサポートページも読んでいますが、他の文字を使用することをお勧めしています。これはそのリンクです https://support.Microsoft.com/en-us/kb/177506

私はすでにAltボタンを試します+ ASCIIこのタイプの特殊文字のコード番号、テンキーから、ファイル/フォルダの名前を変更し、Alt + 60(<文字の場合)を押します。それでもメッセージが表示されます、ファイル名に次の文字を含めることはできません:\ /:*? "<> |

このタイプの特殊文字でファイル/フォルダーの名前を指定できるように、適切な解決策を提案してください。

8
Kirit_Vanani

これは私にとって非常に重要です。これらの文字を含むファイル/フォルダーの名前を付けます。

それはあなたにとって重要かもしれませんが、これを手放し、問題を解決する別の方法を見つける必要があります。

これらの文字は、ファイル名を処理するWindows OS関数呼び出しでは許可されていません。

これらは別の用途があるため、特に許可されていません。

  • \ -パス区切り文字および escape 文字として使用するために予約されています
  • / -パス区切り文字として使用するために予約済み
  • : -ドライブ名区切り文字として使用するために予約済み
  • * そして ? - ワイルドカード 文字として使用するために予約されています
  • " - quote スペースを含む名前に使用するために予約済み
  • <,> そして | -コマンドとして使用するために予約 リダイレクト 演算子

もちろん、異なるオペレーティングシステムを使用して、これらの文字を含む名前のファイルを作成できます(そのオペレーティングシステムがWindowsファイルシステムを読み書きできる限り)。

ただし、Windowsプログラムを使用してこれらのファイルを操作することはできず、ファイル名を理解できず、エラーが発生します。


ファイル、パス、名前空間の命名

命名規則

次の基本的なルールにより、アプリケーションは、ファイルシステムに関係なく、ファイルとディレクトリの有効な名前を作成および処理できます。

...

Unicode文字や拡張文字セット(128〜255)の文字を含む、現在のコードページの任意の文字を名前に使用します。ただし、次のものは除きます。

  • 次の予約文字:

    < (less than)
    > (greater than)
    : (colon)
    " (double quote)
    / (forward slash)
    \ (backslash)
    | (vertical bar or pipe)
    ? (question mark)
    * (asterisk)
    
  • 整数値ゼロ。ASCII NUL文字と呼ばれることもあります。
  • 整数表現が1〜31の範囲にある文字(これらの文字が許可されている代替データストリームを除く)。ファイルストリームの詳細については、「ファイルストリーム」を参照してください。
  • ターゲットファイルシステムで許可されていないその他の文字。

ソース ファイル、パス、名前空間の命名


でもとにかくこれをやりたいです。

cygwin をインストールし、touchを使用します。

私はすべての可能性をテストしていませんが、次の作業:

touch :
touch \|
touch \"
touch \>

出力例:

DavidPostill@Hal /f/test/impossible
$ ll
total 0
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:03 '"'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 :
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 '|'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:07 '>'

ご覧のとおり、Windowsでは使用できません。

F:\test\impossible>dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\impossible

10/08/2016  21:07    <DIR>          .
10/08/2016  21:07    <DIR>          ..
10/08/2016  21:03                 0 
10/08/2016  21:02                 0 
10/08/2016  21:07                 0 
10/08/2016  21:02                 0 
               4 File(s)              0 bytes
               2 Dir(s)  1,772,601,536,512 bytes free

enter image description here

16
DavidPostill

独自のフォントセットを作成します。使用しない文字を予約文字の画像に置き換えてください。

3
Clayton

Windowsでは、これらの文字を含むファイルを作成することはできません。解決策はありません。これらの文字はWin32 APIによって禁止されています。

Win32はPOSIX名前空間のサブセットであり、大文字と小文字は区別されません。 '"' '*' '/' ':' '<' '>' '?'を除くすべてのUnicode文字を使用します。 '\' '|' N.B.名前の末尾をドット「。」またはスペース「」にすることはできません。

- http://dubeyko.com/development/FileSystems/NTFS/ntfsdoc.pdf

2
ChrisInEdmonton