Windowsシステムでは、ファイル名を変更することは機能的にそれらを削除することと似ていますか?


9

Windowsファイルシステムについての私の理解によると、プログラムはパスに従ってファイルを読み取ることができます。このパスが変更された場合、このファイルを読み取るために使用されていたプログラムはそれを行うことができなくなります。これは、ファイルに依存するWindowsシステムのすべてのプログラムにとって、ファイルの削除と名前変更の結果が同じでなければならないことを意味します。

この回答が依存する特定のケースは、Windows 2000で実行されている組み込みシステムです。サービスプロバイダーのマニュアルでは、フォルダー内のファイルを削除するようユーザーに説明しています。注意深いユーザーとして、ファイルを「folder_backup」というパスにコピーし、フォルダーを空のままにしました。

この操作中に、システムは退行し、正しく機能できませんでした。それで、マニュアルを書いたサービスプロバイダーが呼ばれました。彼らの診断は、2つのデータベースが並行していて、 "folder_backup"を2番目のデータベースとしてポイントしているため、データベースが破損しているというものでした。私の理解では、 "D:/ folder_backup"内のファイルは不活性であり、 "folder"で始まるフォルダーを検索するプログラム、または "D:/"ファイルのすべてのコンテンツを読み取るプログラムの例外的なケースを除きます。

名前を変更したファイルにシステムからアクセスできるようにするために、ファイルを削除した場合には不可能だったと思われる方法がありますか?


1
実際にファイルをコピーしましたか(ある時点で2つのコピーを作成してから元のファイルを削除しました)、または単に移動しましたか?
GSerg

1
システムはそれらのデータベースを読み取るときに実行されてましたか?Windows(Linuxも)では、ファイルが開いている間にファイルをコピーすることができます(特定の「モード」でファイルを開いているアプリケーションによって異なります)。ところで、これはおそらくコピーが破損する結果になるでしょう。
davidbak

@davidbak否定、ファイルの名前を変更するときにアプリケーションが閉じられました。
Tomas Zubiri

@GSergフォルダーの名前を変更し、アプリケーションのセットアップでフォルダーを再作成できるようにしたと思います。
Tomas Zubiri

ファイルのIDが整数であり、ファイル名が実際には名前からIDへのマッピングにすぎないUnixファイルシステムと比較してください。ファイルは、名前がなくなりプロセスが開かなくなるまで削除されません。Unixでファイルの名前を変更すると、新しい名前のマッピングが追加され、古い名前が削除されるため、ファイルが削除されることはありません。
Raedwald

回答:


16

本当に選択のために甘やかされて育った。


うわー、ファイルの名前を変更して何かを壊す方法がこれほど多くあるとは思っていませんでした。ありがとう!
Tomas Zubiri

@ wizzwizz4 2000はNT
zdimension

-2

名前を変更したファイルは、別のプログラムから引き続きアクセスできます。

  • 名前を変更したファイルに別のプログラムからアクセスできる1つの方法は、ファイルの名前を変更した同じプログラムによって新しいファイルパスに設定される環境変数です。上記のファイルにアクセスするプログラムは、内部で設定された固定のファイルパスではなく、ファイルパスの環境変数を使用します。

  • 別の方法は、ファイルを特定のフォルダー内の唯一のファイルにすることです。このファイルを使用するプログラムは、その特定のフォルダーに複数のファイルが存在してはならないことを認識していますが、ファイル名は変更される可能性があることを認識していますが、ファイルが属するディレクトリは同じままです。プログラムは単に、そのフォルダー内にある最初のファイルを使用するだけです。フォルダーは常にそのファイルである必要があります。ただし、これは良い方法ではなく、環境変数を使用することをお勧めします。

それが失敗すると、一部のプログラムは、コードの実行を続行する前に、ファイルを見つけるようユーザーに自動的に要求します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.