Domanda

Il metodo di NSFileManager contentsEqualAtPath:andPath: creare una somma di controllo dinamico per confrontare due file, ci si apre l'intestazione del file e confrontare i file di dettagli di intestazione o fa utilizzare un altro metodo per il confronto?

Ho una lista di 200.000 o giù di lì file da confrontare in cui i file locali devono essere confrontati con i file su un volume server remoto. I file locali sarebbero stati copiati dal volume server remoto a un certo punto nel passato, e mi verranno a piedi la lista dei file da confrontare ogni e poi copiare su tutti i file più recenti dal volume server remoto al computer locale (sovrascrivendo qualsiasi esistente). Non v'è alcuna garanzia che i file del server remoti sono stati creati dall'utente locale (e più che probabile che non sarebbe stato).

Per quanto i file sono di piccole dimensioni (circa. 4K in termini di dimensioni) un'operazione di file confrontare complessa potrebbe richiedere quasi quanto un'operazione di copia.

Questa operazione potrebbe (in teoria, ma non probabile) accadere più volte in una sessione utente quindi ho bisogno di assicurarsi che sto usando il metodo più efficiente per la verifica.

L'operazione stessa sarà eseguito su un thread separato in modo da non avere problemi di legare l'utente, mentre il completamento del funzionamento.

Ho iniziato l'attuazione di testare questo, ma era interessato a vedere se qualcun altro ha avuto alcuna esperienza confrontando migliaia di file in modo rapido al fine di determinare quali file devono essere aggiornati se un recente ne esiste uno. E se avete, hai qualche puntatori o trappole da evitare?

Qualche consiglio molto apprezzato.

Aggiorna

pensare a questo un po ', potrebbe essere più utile per tenere un file che tracce l'ultima data e ora aggiornata di tutte le immagini modificate e mantenere un file locale che fa la stessa e basta confrontare questi due documenti ... aggiornerà più come ho corso.

È stato utile?

Soluzione

Sembra a me che per le directory solo nomi di file (e nomi di file di sottodirectory) vengono confrontati. Esso mette a confronto solo il contenuto del file se si passa in modo esplicito percorsi di file al metodo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top