2016-12-02 98 views
0

有什么方法可以确定文件系统中只有目录的md5哈希值?目录的哈希值

我不想要文件的哈希值。我只想要目录和子目录的值。

回答

0

我认为这并不怀疑到Python,但到OS:

>>> print(hashlib.md5(open('/home/tuls/dev', 'rb').read()).hexdigest()) 
... 
IsADirectoryError: [Errno 21] Is a directory: '/home/tuls/dev' 

,并在控制台一样:

~$ md5sum /home/tuls/dev/ 
md5sum: /home/tuls/dev/: Is a directory 

这是因为目录中不包含数据,只是其中有数据文件。看:

~$ du -hs Documents/ 
2,9G Documents/ 

~$ ls -lhd Documents/ 
drwxr-xr-x 5 tuls tuls 4,0K гру 2 11:21 Documents/ 

有2,9G目录,但体重目录是4,0K(只是元数据)

回答你的问题是 - MD5哈希不适用目录,只对文件。

+0

有什么方法可以计算目录/子目录的散列值,但不是文件吗? –

0

如果您确实需要计算目录的hash - 您可以计算该目录路径的散列值。 (如已经提到的那样,目录可能无法在特定OS文件系统可哈希对象)

例如:

my_dir_path = 'C:\some\dir\name' 
my_dir_hash = hash(my_dir_path) 

该解决方案是跨平台的,快速和强大。