[C#] Consigli problema percorso immagini variabile per gestione catalo...

sabato 27 agosto 2011 - 10.23
Tag Elenco Tags  C#  |  .NET 4.0  |  Windows 7  |  Visual Studio Express

plaguebreath Profilo | Junior Member

Buona giornata a tutti. Sto cercando di realizzare un catalogatore di fotografie per un mio amico, in linea di massima so come e cosa fare. In pratica gestisco il tutto con un database SQLite e una semplice interfaccia grafica che mi permetta di visualizzare i cataloghi e ricercare le immagini che possono essere aperte direttamente dal programma.
Il problema è il seguente però, diciamo che ogni catalogo è un DVD, oppure è un Disco Rigido estraibile, oppure è un Path di rete:
Ora mettiamo il caso che fra un anno la lettera del DVD non si chiami più D ma E il path di salvataggio dell'immagine utilizzato per visualizzarne l'anteprima non sarà più valido ! E lo stesso sarà per tutto il catalogo.
C'è una soluzione secondo voi più veloce per questo tipo di problematica per l'aggiornamento ?
Avevo pensato di fare anche in questo modo, in pratica nella tabella Catalogo salvo il Parent folder,
poi nel dettaglio del catalogo che contiene tutte le foto immagazzinate in sottocartelle salvo il Path dell'immagine - il Parent folder.
A questo punto se cambia il percorso base del catalogo o la lettera aggiorno semplicemente 1 record invece di 200. Potrebbe essere una soluzione valida per voi ? Grazie per tutti i commenti che verranno, a presto.

DomA Profilo | Expert

Io userei 2 Tabelle:

Esempio:
Tabella A (Cataloghi):
Campi
ID
Titolo
Origine (in cui memorizzi il path del catalogo)


Tabella B (Foto)
ID
Nome (nome file)
Descrizione Foto (opzionale)
IDCatalogo (chiave esterna)

Se un determinato catalogo cambia il path ti basterà aggiornare il campo "origine" nella Tabella Cataloghi.



http://www.infomidia.it

Domenico

plaguebreath Profilo | Junior Member

Diciamo che è quello che già faccio, solo che ho la struttura come segue
Tabella Catalogo più o meno descritta da te

Tabella contenitore foto (sono le varie cartelle che hanno foto al loro interno)
Salvo solo il nome della sottocartella togliendo il path del catalogo

Tabella file(salvo il nome del file)

Quindi non ci sono altri modi per poter ovviare a questi metodi.

DomA Profilo | Expert

Ti ho consigliato quella struttura per un semplice motivo,
Supponiamo che la foto A512454.jpg insieme ad altre 100 faccia parte del catalogo "Estate 2011" allora anche cambiando la lettera del contenitore ti basterà aggiornare il path del catalogo "Estate 2011" enon di tutte le foto.
Io ho utilizzato questo metodo (in un piccolo software gestionale) per gestire la corrispondenza dei clienti e fornitori che vengono archiviate su un hard disk esterno.
http://www.infomidia.it

Domenico

plaguebreath Profilo | Junior Member

Domenico sono in accordo con te, infatti ti ho risposto che uso il tuo stesso metodo con l'aggiunta però della differenziazione per sottocontenitore, il mio catalogo infatti è un unico record che in cui salvo il path root del catalogo stesso, poi i contenitori sono le sottocartelle in cui sono stati trovati i file foto (mi fanno anche da categoria per il catalogo), e poi c'è la tabella che tiene i nomi dei file veri e propri. Diciamo che forse ho aggiunto una complicazione in più.

DomA Profilo | Expert

No hai fatto bene. Non avevo pensato ad un'ulteriore catalogazione per categoria.
http://www.infomidia.it

Domenico

plaguebreath Profilo | Junior Member

Ah ok allora mi ero spiegato male in principio allora. Allora proseguo su questa strada, e cerco di capire come risolvere il:
Cambio indirizzo root catalogo,
Cambio cartella contenitore,
Cambio file.
Speriamo bene, grazie ;)

DomA Profilo | Expert

>>Cambio indirizzo root catalogo --> FolderBrowserDialog
puoi utilizzare FolderBrowserDialog nel form di registrazione cataloghi che ti permette di selezionare la cartella desiderata.
Forse sono stato io a non aver centrato bene il tuo problema.
Lo stesso vale per le cartelle e le sottoscartelle.
Per i file, invece, speiamo non vengano rinominati.
http://www.infomidia.it

Domenico

plaguebreath Profilo | Junior Member

Si infatti stavo già studiando come fare in quel senso, e penso di muovermi proprio in quella direzione, purtroppo il catalogo è quanto mai variegato e in costante evoluzione in quanto finito i lavori commissionati le cartelle e file vengono archiviati e spostati .... un lavoraccio.
Adesso poi sto facendo una prova su un harddisk da 500gb e mi ha dato un errore di Deadlock ..... che roba è ? gli ho messo un timer per fare un po' di test e per la lettura dell'albero cartelle e contenuto file ci ha messo 277 secondi .... con il programma piuttosto bloccato a dire il vero.

DomA Profilo | Expert

>>Deadlock
Da Wikipedia
« Un insieme di processi si trova in una situazione di stallo (deadlock) se ogni processo dell'insieme aspetta un evento che solo un altro processo dell'insieme può provocare »
(A. Tanenbaum - Professore di Informatica (Computer Science) alla Libera Università (Vrije Universiteit) di Amsterdam)
In informatica il deadlock è una situazione in cui due (o più) processi (o azioni) si bloccano a vicenda aspettando che uno esegua una certa azione (es. rilasciare il controllo su una risorsa come un file, una porta input/output ecc.) che serve all'altro e viceversa.
>> Due o più processi sono in conflitto
Può essere occasionale o può dipendere dal programma.
Provaci ancore chiudendo tutte le applicazioni aperte e vedi cosa succede.
http://www.infomidia.it

Domenico

plaguebreath Profilo | Junior Member

Mhhh si ho cercato un po' e sembra una cosa non rara, dicono di disabilitare l'avviso dal debugger ma non mi piace come soluzione, ci lavorerò su.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5