Powershell - comment mettre en “titre” dans l'étendue des propriétés de fichier
Je suis en train d'écrire un système d'étiquetage en Powershell. Je voudrais être en mesure de définir un 'tag'
de mon choix dans un fichier par exemple à l'aide de la 'title'
domaine que je ne l'utilise pas. Les fichiers que j'aimerais tag sont un mélange de photos, de vidéos et de texte.
J'ai trouvé ça assez facile à lire/obtenir les attributs de fichier étendu comme il y a plusieurs exemples disponibles sur le net, cependant je trouve qu'il est extrêmement difficile de trouver des exemples de la modification ou de l'écriture de fichier étendue des propriétés, en particulier dans Powershell.
J'ai réussi à écrire 'titles'
de fichiers à l'aide de taglib-forte, mais cela semble avoir des problèmes avec des photos différentes et il n'y a pas beaucoup d'informations disponibles pour le dépannage. En Plus il traite uniquement de l'audio/vidéo/photo fichiers.
C'est le code que j'ai à lire le titre (à partir d'un test photo):
$path = 'C:\temp\photo.jpg'
$shell = New-Object -COMObject Shell.Application
$folder = Split-Path $path
$file = Split-Path $path -Leaf
$shellfolder = $shell.Namespace($folder)
$shellfile = $shellfolder.ParseName($file)
$shellfolder.GetDetailsOf($shellfile, 21)
Quelqu'un peut-il me dire comment je puis-je mettre à jour cet attribut, puis d'écrire/enregistrer le fichier?
- Réglage de l'étendue des propriétés de fichier dans .NET semble couverts dans cette question.
- Hi - oui, j'ai déjà vu cette question. L'asm dll ne semble se référer à des documents MS Office, alors que je veux mettre le titre sur de nombreux types de fichiers différents.
Vous devez vous connecter pour publier un commentaire.
Celles-ci dépendent des formats de fichier. L'Explorateur Windows est seulement en mesure de montrer ces étendues de fichier de propriétés, car les plugins laissez-lui savoir comment faire pour obtenir l'information. Pas tous les formats de fichiers cette fonction en charge. Pour l'exemple simple des fichiers txt n'avez pas de titre. Je ne connais pas une seule API pour définir l'étendue des propriétés de fichier, de sorte que vous besoin de trouver une bibliothèque pour chaque format de fichier que vous voulez soutenir. Par exemple TagLib-Sharp pour les photos, vidéos et audio et iTextSharp pour PDF. Mais même alors, vous voulez pas être en mesure de définir le titre pour tous les formats, car certains ne le supportent pas.
Vous vaut mieux chercher un autre moyen pour les tags de vos fichiers. Peut-être NTFS les Flux de Données alternatifs pourrait vous aider.
Exception calling "Save" with "0" argument(s): "File not writeable. Corrupt metadata?" At C:\Write_tag_taglib-sharp.ps1:8 char:1 + $media.save() + ~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : InvalidOperationException
---Les métadonnées s'affiche très bien et je peux le modifier manuellement dans Windows.