CygwinでコンパイルされたWindows 7でプログラムを実行し、出力ファイル名として「NUL」を渡しました。出力を抑制する代わりに、実際には現在のディレクトリに「NUL」という名前のファイルを作成しました。 (どうやら、Windowsでも "/ dev/null"を期待しています。)削除できない "NUL"ファイルに悩まされています!
私はすでに試しました:
remove()
-失敗します完全なCygwin環境をインストールし、CygwinでCプログラムをコンパイルしてそれを実行するのに十分でない場合、これらのNULファイル(現在、いくつかのファイルを持っています)を取り除くにはどうすればよいですか?
コマンドプロンプトを開き、次のコマンドを使用して、最初にNULファイルの名前を変更してから削除します。
C:\> rename \\.\C:\..\NUL. deletefile.txt
C:\> del deletefile.txt
\\.\
接頭辞を使用すると、高レベルのファイルI/O関数に、解析されていないファイル名をデバイスドライバーに渡すように指示します。これにより、無効な名前にアクセスできます。
Windowsでの有効なファイル/パス名とさまざまな予約名について この記事 をお読みください。
同様の問題がありました。これはおそらくCygwinによっても引き起こされたものです(これを定期的に使用しているため)。
私もそれを削除するのに苦労しました。他の投稿のアドバイスに従い、セーフモードで起動してファイルを削除しようとしましたが、何も起こりませんでした。 + xxbbccからのヒントも私にとってはうまくいきませんでした。
しかし、Cygwinターミナルを使用してファイルを削除することができました! Cygwin createthおよびCygwin destroyeth。
ここにあるnulファイルを削除するには:C:\ unix\cygwin\dev\nul
私は単に使用します(Windows 10でのみテスト済み):Del \?\ C:\ unix\cygwin\dev\NUL
私はこれを少し異なる方法で解決しました。
これはグーグルの結果の上位にあり、NULという名前のfolderでも同様の問題があったため、ここに追加すると思いました。
私はrmdir\\?\C:\My\Path\NUL
とrmdir\\.\C:\My\Path\NUL
を試しましたが、成功しませんでした。また、SourceTreeインストールからbashを使用していくつかのコマンドを試しました。喜びがない。
最後に、cmdからDIR /X /A
を使用して、親ディレクトリの短い名前をリストしました。これにより、NULフォルダのNUL~1
が示され、問題の核心が特定されました。
これは標準コマンドrmdir /s NUL~1
で使用され、最終的に問題が解決されました。