Windows system >> Windowsの知識 >  >> Windowsチュートリアル合成 >> システム最適化 >> ファイルを削除できない理由の分析(1)

ファイルを削除できない理由の分析(1)

  

ファイルを削除できないという分析と提案

Windowsを使用している過程で、さまざまな問題が発生します。ファイルを削除する最も簡単な方法でも、「ファイルは他のユーザーまたはプログラムによって使用されています」というプロンプトが表示されるか、レポートに「アクセスが拒否されました」と表示されます。<; hellip;…この場合、これらの問題の原因を調べてください。

原因1:ファイルが使用中です。使用、削除できません。共有アクセスではなく排他アクセス用に開かれていて使用中のファイルを削除しようとすると、「xxxを削除できません。ファイルは他のユーザーまたはプログラムによって使用されています」というエラーメッセージが表示されます。それ以外の場合は、deleteコマンドを使用してファイルを削除できますが、ファイルを開いたプロセスがファイルを解放するまでファイルは実際には削除されません。

上記の問題を解決するには、ファイルオープンハンドルを所有するプロセスを特定してから、プロセスを閉じる必要があります。以前のWindowsでは、リソースキットのOh.exeを使用できました。しかしXPでは、インストールされたサポートツールはOh.exeを持っていません。ただし、XPは、プロセスによって開かれたさまざまなファイルについて報告する新しいOpenfiles.exeコマンドラインツールを提供します。 Oh.exeと同様に、Openfiles.exeもシステムカーネルの監視を有効にする必要があります。これにより、メモリを消費し、システム操作のパフォーマンスが低下します。システム監視を開くコマンドは "Openfiles /localon"です。これにより、システムグローバルフラグ "Maintenance Object List"が有効になります。これを有効にするには再起動する必要があります。システムを再起動した後、コマンドプロンプトでパラメータなしで“ ldfiles”を実行して、各プロセスによって開かれているファイルのリストを表示します。

原因2:ファイルシステムの破損

ディスク上の不良領域、その他のハードウェア障害、またはソフトウェアエラーがファイルシステムに損傷を与え、ファイルに問題を引き起こす可能性があるため、削除できません。ファイルシステムの破損が検出されると、通常、Chkdskの実行を促すメッセージが表示されます。

このような場合は、ディスクボリュームに対してChkdskユーティリティを実行してエラーを修正できます。損傷の性質によっては、Chkdskはファイルデータを復元できても復元できない場合がありますが、Chkdskはファイルシステムを内部的に整合性のある状態に戻すことができます。 Chkdskユーティリティのコマンドとパラメータは、コマンドプロンプト' Chkdsk /?'で確認できます。

理由3:ファイルがアクセス制御リストを使用しています。

ファイルがアクセス制御リスト(ACL)を使用していて、オペレータが適切な権限を持っていない場合、ファイルを削除すると、「アクセスが拒否されました」というプロンプトが表示されることがあります。

通常、管理者には任意のファイルの所有権を取得する暗黙の権限があり、ファイルの所有者にはファイル権限を変更する暗黙の権限があります。ただし、これらのデフォルトの権限は変更できます。

ACLが原因でファイルを削除できない問題を解決するには、適切な権限を持つユーザーとしてログインするか、ファイルを削除する前に自分でファイルを削除する権限を付与する必要があります。アクセス許可を変更するには、オペレータがこれらのファイルの所有権を持っている必要があることに注意することが重要です。ファイルが不正なACLを使用していて、一部のセキュリティツールを使用してそのアクセス許可を表示または変更できない場合は、コマンドラインツールCacls.exeを使用して変更してみてください。



4つの理由:予約名の

を使用して、ファイル名、我々はすべて知っているように、このようなAUX、LPT1などのDOSデバイス名が予約されている遺産として。下位互換性のために、これらのファイル名はWindowsでは許可されていませんし、一般的なWin32ファイル呼び出しを使用して作成することもできません。逆に、ファイル名がWin32名前空間の予約名の場合は、ファイルを削除できないことがあります。

この種の問題を解決するには、Linuxまたはその他のWindows以外のオペレーティングシステムでファイルの名前を変更するか、ファイルを削除します。さらに、特定の構文でファイルへのパスを指定できる場合は、いくつかの組み込みコマンドを使用して一般的なWin32予約名チェックを回避することもできます。たとえば、Windows XPで次のコマンドを使用して、 "ldt; lpt1"という名前のファイルを削除できます(Delコマンドの後に'?'を入力して、ファイル名の妥当性をチェックします)。Del c:[/URL] file path Lpt1。

原因5:無効なファイル名

ファイル名の末尾のスペースや末尾のピリオドなど、無効な名前がファイル名に含まれている場合、またはファイル名が1つのスペースのみで構成されている場合ファイルを削除できない可能性もあります。その名前に末尾または末尾のピリオドを含むファイルを開くために典型的なWin32構文を使用すると、実際のファイルが開かれる前に末尾のスペースまたはピリオドが削除されることを言及する価値があります。したがって、同じフォルダ内に "' File.txt"と "File.txt"という2つのファイルがある場合(2番目のファイル名の後のスペースに注意してください)、標準のWin32呼び出しを使用するときは2番目のファイルを開きます。ファイルが実際に開かれると、最初のファイルが実際に開かれます。同様に、ファイル名が「 - 」(スペース文字)のみの場合、標準のWin32呼び出しでファイルを開こうとすると、実際にはファイルの親フォルダが開かれます。この場合、これらのファイルのセキュリティ設定を変更しようとすると、誤って他のファイルの設定を変更する可能性があります。

予約名を使用してファイル名を解決するのと同様に、適切な内部構文を使用してこのファイルを削除できます。たとえば、末尾のスペースを含むファイルを削除するには、次のコマンドを使用できます。Del c:ファイルパス(末尾のスペースのファイル名)
6

原因:ファイルパスが深すぎてアクセスできません。

パス文字数が大きいパス(MAX_PATH)を指定すると、ファイルにアクセスできなくなることがありますが、もちろんこのような状況はまれです。フォルダ名が長すぎるためにパスが深い場合、最も簡単な解決策は、自動的に生成された8.3形式の名前を使用してファイルにアクセスすることです。 8.3パスが長すぎる場合は、ターゲットファイルのパスの深さがMAX_PATHを超えないように、ルートフォルダからフォルダの名前を変更してその名前を短くすることができます。ファイルが128個のフォルダよりも深い場合は、フォルダツリー内で可能な限り深いネットワーク共有を作成してからその共有にアクセスすることで、ファイルにアクセスできます。

一般に、ファイルパスが深すぎてアクセスできない状況が発生した場合は、ファイルを作成したソフトウェアを使用してこれらのファイルを管理できます。つまり、MAX_PATHを超えるファイルを作成することができるプログラムがあれば、それらのファイルを管理するためにそのプログラムを使用することもできます。さらに、ネットワーク共有によって作成された深い構造化ファイルも同じ共有を使用して削除できます。

これまでに、Windowsシステムでファイルやフォルダを削除できないいくつかの理由とその解決方法について説明しました。場合によっては、上記のさまざまな理由のさまざまな組み合わせも発生する可能性があり、ファイルの削除処理をより複雑にします。そのためには、Microsoftが提供するさまざまなユーティリティを柔軟に適用することで、問題を解決できることが必要です。

Copyright © Windowsの知識 All Rights Reserved