PDA

Visualizza versione completa : Lettura e modifica delle proprietà di un file visibili in "Riepilogo"


Xtefano
30-09-2004, 10.09.47
Ho la necessità di leggere e modificare da programma le proprietà del file che si possono leggere (e modificare) nella tab "Riepilogo"
("Summary" per la versione inglese): click destro su un file qualsiasi, Proprietà, tab "Sommario" (alcune tipologie di file, es. .html, non ce l'hanno ...).
Ho passato tutta la giornata di ieri a cercare sia in rete (anche NG) con San Google che su MSDN senza risultato. L'unica cosa che ho trovato è riferita alle proprietà di EXE e DLL (che sono diverse ...).

Su un paio di forum ho trovato due o tre volte posta la mia stessa domanda senza alcuna risposta ...... ma il modo per farlo *deve* esserci, dato che accedendo alle proprietà del file è possibile farlo manualmente .... ma come ???

Non pongo alcun limite di possibilità e linguaggio ..... ma c'è qualcuno che ne sa qualcosa ??


Grazie a chiunque voglia e possa dare un costruttivo contributo.



Byez

Stefano

P8257 WebMaster
30-09-2004, 16.23.14
Per come la vedo io.. devi implementarlo tu .. perché ogni formato ha metodi specifici, posizioni specifiche e tag specifici per contenere quelle informazioni... tanto tempo fa io lo feci per i vecchi MOD (formato musicale a 4 canali...) in cui le informazioni erano contenute all'inizio del file.

Nonostante questo, per formati conosciuti ed ampiamente diffusi come l'mp3 o il divx penso proprio che qualcuno abbia scritto codice open source che implementa delle api che puoi chiamare per leggere e scrivere questi tag, in particolare ti consiglio di rivolgere la ricerca verso quei software che fanno specificamente l'editing di queste informazioni e in ambito open source, vedere se sono disponibili documentazioni e/o api che puoi utilizzare nel tuo programma.

Bye :cool:

Xtefano
30-09-2004, 16.55.02
Intanto ti ringrazio per il tuo contributo.

Da parte mia, ovviamente, non sono rimasto con le mani in mano ed ho trovato questi due link:
The Summary Information Property Set (http://www.dwam.net/docs/oleref/storage_14.htm)
How to read File Summary Information for non Office files (http://www.howtodothings.com/showarticle.asp?article=447)

In effetti le info che cerco sono riferite non al _contenuto_ del file, ma a dati che ritengo siano memorizzati tra le proprietà del file (sul filesystem, parliamo di NTFS). Tanto è vero che cambiando una o più proprietà di un file il suo CRC non cambia.
Devo applicare queste cose a file di tipo diverso: binari in formato proprietario (es. form Oracle Developer) ed anche a normalissimi file di testo.

Farò comunque un giro anche tra i miei amici (e non è sarcastico) dell'Open Source e vediamo....


Grazie ancora


Byez

Stefano

LoryOne
30-09-2004, 17.06.52
Ti andrebbe di richiamare la scheda proprietà da codice e leggere o modificare manualmente le proprietà che t'interessano attraverso l'interfaccia grafica proposta da Windows, specificando solamente il percorso ed il nome del file ?

Xtefano
30-09-2004, 17.18.46
Cioè ??

Per quanto riguarda richiamare la scheda proprietà da codice e leggere o modificare OK, ma non ho capito il concetto di manualmente .... ;)

Mi spiego: io devo acquisire degli item (file) da un sistema di (semplifichiamo) versioning ed applicare a tutti quei file (che possono essere 1 o 20mila) dei valori (uguali per tutti i file acquisiti) in alcune delle proprietà.
Inutile specificare che poi sarebbe utile poter leggere l'infirmazione con qualche programma ....


LoryOne, mi sa che stiamo imboccando la strada giusta ......


Grazie ancora ... ma non ti fermare proprio ora ;)


Byez

Stefano

LoryOne
30-09-2004, 18.58.40
Si ma se tu mi parli di scheda di riepilogo nella maschera delle proprietà di Windows, tale scheda è visualizzabile solo per alcuni file e non per altri.

Un file html non ha la scheda riepilogo, mentre questa è presente per i file di Word, o Excel.

Cio ch viene visualizzato nella scheda è presente in quel file ed è riconoscibile, quindi ricavabile, attraverso una procedura che legge tali dati in maniera dipendente dalla struttura del file stesso.

La scheda di riepilogo cliccando si un file di testo non verrà mai mostrata da Windows in quanto il file di testo non ha la struttura adatta ad inserire le informazioni che ti serve ricavare.

Xtefano
01-10-2004, 09.30.23
Si ma se tu mi parli di scheda di riepilogo nella maschera delle proprietà di Windows, tale scheda è visualizzabile solo per alcuni file e non per altri.
esatto.
Un file html non ha la scheda riepilogo, mentre questa è presente per i file di Word, o Excel.
esatto
Cio ch viene visualizzato nella scheda è presente in quel file ed è riconoscibile, quindi ricavabile, attraverso una procedura che legge tali dati in maniera dipendente dalla struttura del file stesso.
E' vero, ma non è tutto .....
La scheda di riepilogo cliccando si un file di testo non verrà mai mostrata da Windows in quanto il file di testo non ha la struttura adatta ad inserire le informazioni che ti serve ricavare.
Non è vero, o meglio non stiamo probabilmente parlando della stessa cosa: è vero che i file di Office hanno una serie di proprietà "embedded", ma se tu le modifichi modifichi il CRC del file (ovvero il suo contenuto).

Prova (stiamo parlando di W2k su NTFS): crea dove vuoi un file x.txt vuoto
copia il file nella stessa directory (copia di x.txt)
click destro su x.txt, Proprietà
ti compaiono tab "Generali", "Protezione" e "Riepilogo"
se vai in "Riepilogo" (dove c'è in fondo un bottone "Semplici"/"Avanzate") ti compaiono una serie di proprietà che puoi modificare, modificane una a tuo piacimento e premi "Applica"
controlla il CRC di x.txt (sarà 0x0) e di copia di x.txt (sarà anche lui 0x0): ergo la proprietà è memorizzata *al di fuori* del contenuto del file
Se provi a creare un x.doc vuoto e copiarlo (copia di x.doc), modificare una delle proprietà di x.doc (io ho cambiato il "Titolo") il CRC viene diverso (nel mio caso x.doc 0x95e2c7c2 e copia di x.doc 0xe9bff0ad): ergo la proprietà è memorizzata *dentro* il file.

Spero che a questo punto sia più chiaro: a me servono i *primi* valori.
Il ragionamento mi sembra al limite del banale: se mi è consentito di agire manualmente "un qualche" modo di agire da programma esisterà pure .... ma quale ??
A naso ciò che io cerco è memorizzato sul filesystem, assieme (es.) alla data creazione ed alla data di ultima modifica ......


Grazie comunque, ogni intervento porta un sassolino ... e tanti sassolini fanno una montagna !! ;)


Byez

Stefano

LoryOne
01-10-2004, 12.21.52
A naso ciò che io cerco è memorizzato sul filesystem, assieme (es.) alla data creazione ed alla data di ultima modifica ......


A naso ? :D
C'hai azzeccato in pieno secondo me (Y).

LoryOne
01-10-2004, 12.50.46
Guarda, sono quasi certo che l'API da richiamare sia:
StgOpenStorageEx.
Guarda su MSDN quali parametri passarle :)

LoryOne
01-10-2004, 13.12.16
Qui:
http://www.mindcracker.com/mindcracker/c_cafe/atl/ss.asp
sembra esserci qualcosa di veramente interessante.
Dacci un'occhiata ;)

Alhazred
01-10-2004, 14.17.04
Lory da un'occhiata qui (http://www.wintricks.it/forum/showthread.php?s=&postid=736515#post736515) :p

LoryOne
01-10-2004, 14.31.59
Fatto.
E' in te che ripongo le mie speranze :D

Xtefano
05-10-2004, 16.22.35
Originariamente inviato da LoryOne
Qui:
http://www.mindcracker.com/mindcracker/c_cafe/atl/ss.asp
sembra esserci qualcosa di veramente interessante.
Dacci un'occhiata ;)

Tranquillo, la cosa non è stata accantonata, ma passata a "mani" migliori. Per questa settimana abbiamo urgenze varie che ci impediscono di chiudere la questione, ma conto di aggiornarti presto: la strada è (IMHO) proprio quella, non fa che confermare altri link che ho trovato ...

Grazie ancora e .... a presto


Byez

Stefano