Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将文件链接到数据库?_Php_Python_Database_Windows_Linux - Fatal编程技术网

Php 如何将文件链接到数据库?

Php 如何将文件链接到数据库?,php,python,database,windows,linux,Php,Python,Database,Windows,Linux,我正在尝试实现一个脚本,该脚本读取某个目录的内容(文件和文件夹)并将其写入数据库。我的目标是创建一个软件,允许我组织那些与描述和标记相关的文件和文件夹,而不影响磁盘中相应的物理文件。 但现在我面临一个逻辑问题:如何在物理文件和数据库寄存器之间建立直接连接?我希望,即使由于某种原因,物理文件被编辑或移动到根目录中的另一个文件夹中,软件仍然能够将该文件与其在数据库中的原始注册表相关联 我的第一个想法是使用校验和哈希来识别每个文件,但是,我猜如果文件被编辑,哈希也会被编辑,不是吗?除此之外,我还认为文

我正在尝试实现一个脚本,该脚本读取某个目录的内容(文件和文件夹)并将其写入数据库。我的目标是创建一个软件,允许我组织那些与描述和标记相关的文件和文件夹,而不影响磁盘中相应的物理文件。 但现在我面临一个逻辑问题:如何在物理文件和数据库寄存器之间建立直接连接?我希望,即使由于某种原因,物理文件被编辑或移动到根目录中的另一个文件夹中,软件仍然能够将该文件与其在数据库中的原始注册表相关联

我的第一个想法是使用校验和哈希来识别每个文件,但是,我猜如果文件被编辑,哈希也会被编辑,不是吗?除此之外,我还认为文件夹本身不能通过这种方式进行检查

我想到的另一个解决方案是在目录中每个文件和文件夹名称的开头应用一个唯一的键。这可能行得通,但在我看来,这似乎是一个即兴的解决方案,因此,我认为可能还有另一种方法,我还没有考虑过。
有人对此有什么建议吗?

在Linux下,您可以通过跟踪文件,如果文件被移动或重命名,跟踪不会改变。你甚至可以

您考虑过将文件存储在数据库中吗?

您不能

看起来无法通过内容或路径名来识别文件


一种解决方法可能是:使用路径作为id(并在数据库中使用它们作为引用),不要使用系统工具(如
mv
)来移动文件,而是使用自己的脚本来更新文件系统和数据库。

如何
http://stackoverflow.com/questions/511463/monitor-directory-for-changes
,假设您在“*nix”上非常感谢@sakhunzai。是的,我应该通知您,实际上该目录位于本地Linux服务器中,该服务器通过Samba向Windows共享其内容。谢谢!我不知道inotify的事。我现在正在读关于它的书,看起来不错。在做了一些测试之后,inode编号满足了我的所有需求。创建文件或文件夹时,将创建inode编号,并且仅在删除引用的文件或文件夹时才会删除该编号。移动或编辑文件后,它也保持不变。