![Java File クラスがシステム内に削除できないファイルを生成しました](https://rvso.com/image/1585754/Java%20File%20%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%8C%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E5%86%85%E3%81%AB%E5%89%8A%E9%99%A4%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E7%94%9F%E6%88%90%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F.png)
私は C# ユニット テスト用の簡単な社内テンプレート プログラムに取り組んでいたので、Java を使用してそれらを生成しました。
プログラムはテンプレート ファイルを開き、正規表現パターンを置き換えて、その情報をテスト プロジェクトの新しいファイルに保存するだけです。
プログラムは意図したとおりに動作するようになりましたが、以前はグループ化ではなく正規表現の一致全体を誤って選択し、ファイルに「public class myTestClass」という名前を付けていました。
大したことではないと思ったので、新しく作成されたファイルを削除しようとしましたが、ファイル システムが拒否しました。その後、テンプレート プログラムを完成させる間、この問題は脇に置きました。完成後、すべての Java インスタンスを強制終了し、PC をリセットしました。起動後、Git で変更をプッシュしようとしましたが、ファイルは依然として残っており、削除できませんでした。
ファイル エクスプローラーと cmd で「これは C:\....\myFolder に存在しません」というエラーが繰り返し表示されます。アイテムの場所を確認して、もう一度試してください。
これは問題です。何を試してもファイルが残り、リポジトリが役に立たなくなるからです。すでに手動で修正し、変更を git にプッシュしましたが、元のプロジェクト パスを引き続き使用できるように、この問題を解決したいと考えています。
Javaプログラムは、cwd + 新しいファイルの名前で新しいFile()を作成し、String.getBytes()をファイルにフラッシュするだけです。
ファイルはすべて0KBで、プロパティには有効な情報がありません。検索インデックスをリセットした後でも、ファイルはすべての検索とインデックスに表示されます。
私が試したこと:
- リブート
- シャットダウン
- 電源プラグを30秒間抜く
chkdsk /r /f
cmd rm PUBLIC~1
**私が使用したファイルの短縮名dir /x
- ファイルのLockHunterは、どのプロセスによってもロックされていないと表示しました
- セーフモードでもできない
- ファイルを短いパスに移動しようとしましたが失敗しました
- すべてのフォルダ名を短くしてもうまくいきませんでした
- 検索インデックスを再構築
この質問が適切な場所でない場合は申し訳ありませんが、私にはアイデアがありません。
答え1
ついに問題を解決しました。
この問題の根本的な原因はまだわかりませんが、私が解決できた方法は次のとおりです。ファイルを 7zip でアーカイブに追加し、「アーカイブ後にファイルを削除する」というボックスにチェックを入れるだけで、ようやく解決しました。