2013-07-25 7 views
5

Per http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.storagefile.datecreated.aspx, StorageFile.DateCreated è di sola lettura.Come modificare DateCreated su StorageFile?

Sul desktop, che posso fare:

IStorageFile file = ... 
DateTime date = ... 
BasicProperties props = await file.GetBasicPropertiesAsync(); 
var changes = new List<KeyValuePair<string,object>>(); 
changes.Add(new KeyValuePair<string, object>("System.DateCreated", date)); 
await props.SavePropertiesAsync(changes); 

ma su WP8, BasicProperties.SavePropertiesAsync non è implementato.

C'è un altro modo per farlo?

risposta

0

Un modo sarebbe quello di prendere la data creata e utilizzare ApplicationData.LocalSettings per memorizzare il percorso del file e la data di creazione. Il rischio è che devi assicurarti che il valore venga aggiornato ogni volta che crei un file.

In caso contrario, è possibile utilizzare moveAndReplaceAsync per spostare il file e ripristinare la data di creazione.

È inoltre possibile memorizzare i valori nel proprio file o database secondario, ma ciò richiederebbe un ulteriore I/O su ogni file letto. (Devi aprire due file per ottenere il contenuto del file e la 'data di creazione').