En supposant que vous utilisez ntfs-3g pour monter vos partitions NTFS sous linux (c'est par défaut sur la plupart des distributions Linux actuelles). Vous devrez lire les attributs étendus du fichier (voir attr(5)), vous pouvez utiliser pyxattr pour cela. Les attributs NTFS sont stockés dans l'attribut étendu system.ntfs_attrib
en tant qu'ensemble d'indicateurs dont les valeurs sont documentées dans ntfs-3g documentation.
Voici un exemple de code pour lire et décoder les attributs du système de fichiers NTFS et de les utiliser pour filtrer les fichiers:
import os, struct, xattr
# values from http://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/
attributes = ['readonly', 'hidden', 'system', 'unknown',
'unknown', 'archive', 'unknown', 'unknown',
'temp', 'unknown', 'unknown', 'compressed_dir',
'offline', 'not_content_indexed' ] + ['unknown']*18
def ntfs_attr(path):
attr = struct.unpack("i", xattr.get(path, "system.ntfs_attrib"))[0]
for shift, attribute in enumerate(attributes):
if (attr >> shift) & 1 == 1:
yield attribute
def main():
import sys
if len(sys.argv) != 3:
print "Usage: %s path attribute" % sys.argv[0]
a = set(attributes)
a.remove('unknown')
print "where attribute is one of:", ' '.join(a)
sys.exit(1)
path = sys.argv[1]
attribute = sys.argv[2]
print "Files with %s attribute in %s:" % (attribute, path)
for filename in os.listdir(path):
fullname = os.path.join(path, filename)
if attribute in ntfs_attr(fullname):
print fullname
if __name__ == '__main__':
main()
Qu'avez-vous eu jusqu'à présent? Pouvez-vous identifier les fichiers non cachés? – Johnsyweb
@Johnsyweb: J'ai juste le code pour identifier les fichiers cachés sur la plate-forme Linux .. c'est-à-dire tous les fichiers/dossiers commençant par "." (caractère point). Mon exigence est de détecter les fichiers et dossiers cachés sur un disque dur USB qui a une partition NTFS et se connecter à ma machine Linux. –
Voulez-vous dire des fichiers avec l'attribut "caché"? Ou une sorte de fichiers spéciaux non affichés par 'os.walk'? – AndiDog