今日、WinRARを使用して.apkファイルを逆コンパイルしようとすると、エラーが発生し、解凍が終了しました。その後、フォルダを削除しようとすると、管理者権限を提供しているにもかかわらず、フォルダの所有権がないというエラーが発生します。
画像内のファイルとその親フォルダーの両方を削除しようとすると、エラーが発生します。
次に、コマンドを使用して管理者モードでcmdを使用して同じことを試みました:
rm -dテスト
出力:: rm: `test 'のリンクを解除できません:所有者ではありません
また、次のコマンドを実行して、フォルダー内のファイルを再帰的に削除しました。
rm -rテスト
出力:rm:警告:循環ディレクトリ構造。これはほぼ間違いなく、ファイルシステムが破損していることを意味します。システムマネージャーに通知します。次の2つのディレクトリのiノード番号は同じです。
テスト `test/'
だから私は再帰的なファイル構造を削除するために次のコマンドを試しました、
rm -rfdテスト
出力:rm: `test 'のリンクを解除できません:所有者ではありません
私が使用した上記のメソッドはすべてStackOverflowまたはMicrosoft QnAページからのものですが、何も機能しないようです。
セーフモードでも試してみました。それでも、同じエラーが発生します。 2回、エラーコード0x80070091のエラーも発生しました
Takeownコマンドを使用してフォルダの所有権を取得しようとしました。
takeown/fテスト/ r
出力:
成功:ファイル(またはフォルダー): "C:\ Users\mandar\Desktop\test"がユーザー "MANDAR_SADYE\mandar"によって所有されています。
成功:ファイル(またはフォルダー): "C:\ Users\mandar\Desktop\test \"は現在、ユーザー "MANDAR_SADYE\mandar"が所有しています。
私は見つけることができるすべての可能な解決策を試しましたが、何もうまくいかないようです。誰かがこの問題に関して何か提案がある場合は、適切と思われるように回答またはコメントとして投稿してください。前もって感謝します。
試行錯誤を繰り返した結果、削除する方法を見つけました。 harrymc's solution を試す前に解決策を見つけたので、彼の解決策が機能するかどうかを確認できませんでした。私が行った方法は簡単ではないので、まず彼のソリューションを試してみて、それが機能するかどうかを知らせて、許容できる回答としてマークできるようにすることを強くお勧めします。
したがって、私が従った方法は、別のファイルシステムでフォルダーを開くことです。
したがって、問題はWindows NTFSファイルシステムにあると思います。 3番目の方法を除いてわかるように、ほとんどの人が持っていないブート可能または仮想マシンの形でセカンダリOSを探す必要があります。したがって、3番目のソリューションを試してください。それが機能しない場合は、 harrymcのソリューション を試してください。それでもうまくいかない場合は、仮想マシンをインストールするか、起動可能なペンドライブを作成して削除してみてください。
問題は、スペースのみを含む名前のファイルシステムエントリがあることです(test\
、バックスラッシュの後のスペースに注意してください)。これは技術的にはNTFSで可能ですが、Win32ではまったく許可されておらず、ほとんどのWindows APIでは正常に処理されません。彼らはファイル名の末尾からスペースを取り除こうとし、ファイル名がもう存在しない場合は非常に混乱し、ディレクトリを参照しているかのように扱う場合があります。これは、test\*
や" "
などの形式を使用している場合でも発生します。
これをWindows自体で行うには2つの方法があります。
\\?\
を付けることによって行われます。これを行うと、有効なファイル名についてのすべてのWin32ルール(「スペースで開始または終了できない」など)がオフになり、より限定的なNTFSルールのセットのみが残ります(\
または:
など)。また、相対パスの使用などの便利な省略形もオフになることに注意してください。これを行う場合は、絶対パス(C:\ Users\mandar\Desktop\test \)を指定する必要があります。引用符で囲む必要があります。これにより、コマンドラインで、最終スペースを含めるつもりであることがわかります:del "\\?\C:\Users\mandar\Desktop\test\ "
(そうです、これにはcmd.exe
を使用する必要があります。Powershellは\?\を無視し、MinGWまたはCygwinを介してWindowsで実行されているUnix風のシェルは、カーネルが期待する形式のパスを使用しません)。bash
(または他のシェル)内から、関連するディレクトリ(cd /mnt/c/Users/mandar/Desktop/test
)に移動し、問題のファイル(rm ' '
)または単にディレクトリ全体を削除します。コマンド chkdsk を実行して、エラーが検出されるかどうかを確認します。
エラーをさらに理解するために、 Windows 10のイベントビューアーでChkdskログを読み取る を行うことができます。
エラーが見つかり、威嚇的ではないか、エラーが多すぎる場合は、エラーを修正するために次のコマンドを実行します。
chkdsk /f
開始する前に、ファイルの適切なバックアップがあることを確認してください。