Des Propriétés De Fichier Personnalisées
BOUNTY COMMENCÉ, MAIS JE VEUX DES EXEMPLES EN C#
J'ai besoin d'suivantes:
Dans mon application j'ai des documents. Les Documents qui doivent être vérifiés et tout le temps. Lorsque je consulte un Document de mon application, j'ai besoin d'ajouter des Propriétés Personnalisées dans le fichier afin que je puisse l'identifier plus tard, lorsque je vais à l'enregistrement du document.
J'ai essayé d'utiliser le OleDocumentProperties de DSOFile en utilisant le code suivant, mais sans succès:
//Adding custom properties to file (Parameters: FileName, custom property name, value, debug: true/false
DocumentProperties.WriteDocumentProperty(filename, "dms_dossiernummer", _dossiernummer.ToString(), false);
DocumentProperties.WriteDocumentProperty(filename, "dms_zaaknaam", ReturnZaaknaam(_dossiernummer), false);
DocumentProperties.WriteDocumentProperty(filename, "dms_verantw_medew", ReturnVerantwMedew(_dossiernummer), false);
DocumentProperties.WriteDocumentProperty(filename, "dms_document_path", path, false);
DocumentProperties.WriteDocumentProperty(filename, "dms_bestandsnaam", bestandsNaam, false);
DocumentProperties.WriteDocumentProperty(filename, "dms_bestands_id", bestandId, false);
DocumentProperties.WriteDocumentProperty(filename, "dms_is_checkedout", "true", false);
DocumentProperties.WriteDocumentProperty(filename, "dms_dossier_map_id", dossierMapId, false);
DocumentProperties.WriteDocumentProperty(filename, "dms_bestand_versie_nummer", Queries.Dms.Selects.GetDocumentVersion(
Convert.ToInt32(bestandId)).ToString(), false);
DocumentProperties.WriteDocumentProperty(filename, "dms_bestands_locatie", path, false);
Quelqu'un sait-il un autre moyen d'ajouter des Propriétés de Fichier pour un fichier?
Quel est le contexte? SharePoint? Vous parlez de la vérification dans le fichier. Vérifier dans où?
J'ai édité ton titre. Se reporter à la rubrique "si vous avez des questions comprennent “tags” dans leurs titres?", où le consensus est "non, ils ne devraient pas".
c'est pour une Application en C#. Je suis en train de construire mon propre Système de Gestion de documents.
La plupart des Api Win32, peut être appelée à partir de C#, il faut juste faire plus de travail. Lire l'article qu'il a lié, puis lire sur "P/Invoke".
Pourquoi ne pas ajouter un fichier au moment de passer à la caisse répertoire qui contient les méta-données sur tous les éléments de ce chemin? La SVN. La dernière puce de Olly de réponse ci-dessous 😀
J'ai édité ton titre. Se reporter à la rubrique "si vous avez des questions comprennent “tags” dans leurs titres?", où le consensus est "non, ils ne devraient pas".
c'est pour une Application en C#. Je suis en train de construire mon propre Système de Gestion de documents.
La plupart des Api Win32, peut être appelée à partir de C#, il faut juste faire plus de travail. Lire l'article qu'il a lié, puis lire sur "P/Invoke".
Pourquoi ne pas ajouter un fichier au moment de passer à la caisse répertoire qui contient les méta-données sur tous les éléments de ce chemin? La SVN. La dernière puce de Olly de réponse ci-dessous 😀
OriginalL'auteur JRO | 2013-12-17
Vous devez vous connecter pour publier un commentaire.
Qu'est ce qu'un Fichier?
En gros, un fichier est juste un flux d'octets et certaines métadonnées de fichier du système de fichiers associés. Au début de systèmes de fichiers de métadonnées a été fondamentalement juste le nom du fichier et la date de timbres. Nouveaux systèmes de fichiers comme NTFS avez la possibilité d'ajouter des métadonnées supplémentaires.
Où les Propriétés du Document provient?
Dans l'Explorateur Windows, vous pouvez voir beaucoup de propriétés du document pour de nombreux types de fichiers. La belle, interface unifiée suggère qu'il existe des propriétés unifiée magasin. Ce n'est pas vraiment le cas. Le Shell de l'Explorateur a une interface extensible pour La Propriété De Feuille De Gestionnaires à l'extraction de cette information à partir de différents types de fichiers. Il est un gestionnaire pour JFIF (JPEG) , et il y a des gestionnaires de fichiers OLE (ancien Bureau de formats), et le nouveau Bureau formats.
Où Dois-Je Mettre Mon Métadonnées?
La conclusion est:
Si vous pouvez garantir que vous avez seulement besoin de manipuler certains formats de fichiers, d'enquêter sur l'ajout de métadonnées dans les fichiers. Par exemple,
Propriétés OLE si tous les fichiers sont de style ancien des documents Office (.doc)
À l'aide de la Open XML API si tous vos documents sont nouveau style des documents Office (.docx)
Si vous pouvez garantir que toutes les installations seront sur un système de fichiers spécifique, d'enquêter sur les fonctionnalités du système de fichiers. D'autres réponses ont étudié comment vous pouvez le faire avec NTFS.
Sinon, vous devez concevoir votre propre magasin de données. Compagnon de fichiers sont une possibilité évidente; vous pouvez stocker les métadonnées dans une base de données; ou vous pouvez créer un fichier par répertoire pour contenir toutes les métadonnées pour les fichiers dans ce répertoire. Demandez-vous si vous pourriez faire face à la simultanéité des problèmes avec plusieurs demandes pour le même fichier. À l'aide d'une base de données pourrait rend que plus simple.
Il n'a pas l'air comme si le lien vers cet article dans sa réponse ci-dessous est presque exactement ce que vous êtes après, bien qu'il ressemble comme si Windows ne pas vous avertir au sujet de la perte de l'information supplémentaire lors de la copie d'un non-volume NTFS.
OriginalL'auteur Olly
Un flux de données de remplacement vous permettra de stocker toutes les données que vous souhaitez. Méfiez-vous; si vous copiez le fichier à un non système de fichiers NTFS, les données seront supprimées.
Ici est un article qui devrait vous obtenir a commencé
-- Edit 1/2/2014 --
Voici quelques-uns:
http://www.codeproject.com/Articles/2670/Accessing-alternative-data-streams-of-files-on-an
http://www.dreamincode.net/forums/topic/90666-reading-and-writing-alternate-streams-in-c%23/
NTFS les Flux de Données alternatifs - .NET
Et celui de la création/affichage d'ANNONCES à partir de la ligne de commande:
http://www.undermyhat.org/blog/2012/05/copy-delete-or-rename-alternate-data-streams-using-only-standard-windows-command-prompt-tools/
OriginalL'auteur Brad Bruce
Bien que n'importe quel type de fichier peut être ouvert à l'aide de DSOFile.dll, les propriétés personnalisées ne seront pas persisté, sauf pour les fichiers qui sont Structurés OLE Stockages /Ole Documents (http://en.wikipedia.org/wiki/COM_Structured_Storage) comme les anciens formats de fichiers Microsoft Office (.doc, .xls, etc) et certains fichiers de CAO.
Que Brad a écrit, vous pouvez aller avec le flux de données alternatifs, mais qui a une dépendance trop, le système de fichiers NTFS.
Je ne vous recommande pas d'aller à ces méthodes,...
Que si vous avez utilisé un nouveau fichier ie.
<original file>.props
ou tel?OriginalL'auteur dbalogh
Il y a plusieurs options ici.
Comme mentionné ci-dessus, les flux de données alternatifs sont une bonne option si vous pouvez garantir que votre fichier sera toujours situé sur NTFS.
Il vous suffit d'écrire vos propriétés personnalisées en JSON, XML, d'objets sérialisés, ou même d'une simple ligne + séparateur de format.
Malheureusement, ce ne sont pas entièrement disponibles à l'aide .NET, vous devez utiliser P/Invoke et CreateFile.
Vous devrez ensuite créer le flux de données avec le chemin d'accès au fichier, suivie d'une virgule, suivie par le nom de la rivière le nom du fichier et passer le SafeFileHandle retourné par CreateFile pour le constructeur de FileStream. Toutes les autres options de CreateFile sont comme normal pour l'ouverture d'un fichier via cette API.
Notez que si vous voulez écrire à un autre flux de données, vous devez disposer d'un accès en écriture au fichier.
Voici la référence pour CreateFile. http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs. 85).aspx
Voici quelques constantes utiles:
Une méthode qui ne nécessite pas de P/Invoke et est conviviale pour les systèmes de fichiers autres que NTFS est de créer un second fichier avec le chemin d'accès complet du fichier d'origine + une extension ajoutée. Encore une fois, vous pouvez utiliser la méthode de votre choix de conserver les propriétés de ce fichier. Cependant, cela a l'inconvénient que si votre utilisateur déplace les fichiers, ils doivent déplacer les propriétés de trop.
OriginalL'auteur Conor Stokes
J'ai enfin trouvé un moyen facile de atleast ajouter des propriétés de document pour les Documents Word.
Simplement à l'aide de la DSOFile.dll 🙂
Fonctionne comme un charme!
OriginalL'auteur JRO