1. ホーム
  2. c

Windowsで "NUL "という名前のファイルを削除する

2023-09-12 11:53:30

質問

Cygwin でコンパイルされたプログラムを Windows 7 で実行し、出力ファイル名として "NUL"を渡しました。出力を抑制する代わりに、実際にはカレント ディレクトリに "NUL" という名前のファイルが作成されました (どうやら、それは "NUL" を期待しているようです)。(どうやら Windows でも "/dev/null" を期待しているようです。) 今、私はこの "NUL" ファイルを削除することができずに困っています!

私はすでに試しました。

  • Windows エクスプローラー - エラー: "無効な MS-DOS 関数" (そう、これは本当に書いてあることなのです!)
  • コマンド プロンプトで "del NUL" を使用した場合 - エラー: "ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません。 ラベルの構文が正しくありません。
  • ディレクトリ全体を削除する - ファイルを削除するのと同じ対処法
  • remove() を C プログラムで実行する - これも失敗

Cygwin の完全な環境をインストールし、C プログラムを Cygwin の下でコンパイルして、それを行う以外に、これらの NUL ファイル (今ではいくつかあります) を取り除くにはどうしたらよいでしょうか。

どのように解決するのですか?

コマンド プロンプトを開き、以下のコマンドを使用して、まず名前を変更し、次に NUL ファイルを削除します。

C:\> rename \\.\C:\..\NUL. deletefile.txt
C:\> del deletefile.txt

を使うことで \\.\ プレフィックスは、ファイル名を解析せずにデバイスドライバに渡すよう、 高レベルのファイル I/O 関数に指示します。

読む この記事 Windows で有効なファイル名/パス名と、さまざまな予約名について。