在Windows系统中,重命名文件的功能是否类似于删除文件?


9

根据我对Windows文件系统的理解,程序可以根据其路径读取文件,如果更改了该路径,则用于读取该文件的任何程序都将无法再读取文件。这意味着,对于Windows系统中依赖文件的任何程序,删除和重命名文件的后果必须相同。

该答案取决于的特定情况是在Windows 2000上运行的嵌入式系统,服务提供商手册指导用户删除文件夹中的文件。作为一个谨慎的用户,我只是将文件复制到名为“ folder_backup”的路径,然后将文件夹保留为空。

在此操作期间,系统退步并且无法正常运行。因此,写了本手册的服务提供商被召集。他们的诊断是该数据库已损坏,因为并行有2个数据库,第二个数据库指向“ folder_backup”。据我了解,“ D:/ folder_backup”中的文件将是惰性的,除非程序在例外情况下寻找以“ folder”开头的文件夹或读取“ D:/”文件中的所有内容。

系统仍然可以通过哪些非晦涩的方式来访问已重命名的文件,否则,如果删除该文件,那将是不可能的?


1
实际上,您是否复制了文件(有时有两个副本,然后删除了原始文件)还是只是移动了它们?
Gserg

1
当时系统正在读取这些数据库吗?在Windows(同样是Linux)上,可以在打开文件时复制文件(取决于应用程序以某些“模式”打开文件)。BTW可能会导致副本损坏。
davidbak

@davidbak否定的,重命名文件时应用程序已关闭。
Tomas Zubiri

@GSerg我相信我已重命名了文件夹,然后允许应用程序安装程序重新创建它。
Tomas Zubiri

与Unix文件系统相比,在Unix文件系统中,文件的ID是整数,文件名实际上仅是从名称到ID的映射,并且在文件没有名称且没有进程打开之前,文件不会被删除。在Unix中重命名文件会添加一个新的名称映射,然后删除旧名称,因此绝对不会删除该文件。
拉德瓦尔德

Answers:



-2

重命名的文件仍然可以被另一个程序访问。

  • 重命名文件仍然可以被另一个程序访问的一种方式是环境变量,该环境变量由重命名文件的同一程序设置为新文件路径。想要访问该文件的程序使用环境变量作为文件路径,而不是内部设置的固定文件路径。

  • 另一种方法是使文件成为特定文件夹中的唯一文件。想要使用此文件的程序知道该特定文件夹中不应有多个文件,但知道文件名可能会更改,但其所属目录将保持不变。该程序仅使用它在该文件夹中可以找到的第一个文件,该文件应始终是该文件。但是,这不是一个好习惯,最好使用环境变量。

失败的是,某些程序会在继续执行代码之前自动要求用户找到文件

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.