2009-07-29 17 views
0

Ich muss Ordner Struktur abfragen. Mit anderen Worten, ich muss auf die Verzeichnisstruktur per SQL zugreifen können. Ich denke daran, dass es einen OLE DB-Provider oder einen ODBC-Treiber für diesen Zweck geben sollte. Mein Freund sagte google "Ordnerüberwachung", aber ich kann nichts finden Jetzt mache ich in der Eingabeaufforderung dir> somefile und importiere die resultierende Textdatei in die DB, aber es ist irgendwie "nicht Echtzeit". Ich muss wie ein Entdecker in Echtzeit darauf zugreifen. Gibt es einen Weg? Dankwie man eine Ordnerstruktur abfragt (Dateien, Verzeichnisse)

Antwort

0

Warum benötigen Sie SQL speziell zum Abfragen von Dateien und Ordnern? Welche Art von Abfrage versuchen Sie zu erstellen und welche Leistungsanforderungen müssen Sie dafür erfüllen? (Zum einen sollten Sie wissen, dass die Abfrageleistung bei fehlenden Indizes nicht von der Abfragesprache abhängt).

+0

Danke für Ihre Antwort, Ich brauche nicht speziell SQL, um dies zu tun. Ich habe einen Ordner im Netzwerk, wo viele Leute viele Dateien hauptsächlich Bilder ablegen. Ich muss diesen Ordner als eine DB haben, um abzufragen und die dort vorhandenen Dateien zu kennen. Erwarten Sie keine große Leistung, da der Ordner sehr groß ist und sogar das Betriebssystem für einige Minuten geöffnet wird. –

+0

Um zu verdeutlichen: Haben Sie einen einzelnen Ordner oder eine Verzeichnisstruktur (Sie müssen also alle Unterordner durchsuchen); und welche Dateiattribute müssen Sie abfragen können - Dateiname/Größe/Datum oder einige Metadaten, die in die Dateien selbst eingebettet sind (z. B. MP3-Tags)? –

+0

es ist ein Ordner (aber ich möchte diese Einschränkung nicht haben), für jetzt muss ich nur Dateinamen abfragen, aber ich wünschte, ich könnte auch Metadaten wie EXIFF Felder der Bilder abfragen. –

1

Ich nehme an, Sie werden in der Datenbank als Hierarchie Informationen über die Ordnerstruktur werden zu speichern:

  • ID
  • ParentID
  • ObjektName

Zum Beispiel, speichern, dass fileA und fileB unter DirectoryD sind, würden Sie drei Datensätze haben: - 1, 1, root - 2, 1, DirectoryD - 3, 2, dateiA - 4, 2, fileB

Wenn das der Fall ist, empfehle ich auf hierarchische db Modelle bis:

+0

Ok, danke, , aber wie Sie auf tatsächliche Dateien in Ihrem Computer zugreifen –

0

Sie importing a .NET assembly into your database versuchen könnte, die das enthält Logik für die Abfrage des Dateisystems, exponieren Sie es als eine benutzerdefinierte Funktion und rufen Sie diese Funktion dann immer dann auf, wenn Sie die Werte aus diesem Verzeichnis in Echtzeit abrufen möchten.

Zugegeben, ich habe dies nur mit skalaren Ergebnissen von den .Net-Funktionen gesehen, aber es sollte möglich sein, Tabellenwerte auch zurückzugeben.

Ein einfaches C# -Beispiel für den Dateisystemzugriff kann gefunden werden here, aber wenn C# nicht Ihr Geschmack ist, oder Sie nicht in Code überhaupt dabble, dann wird dies keine Hilfe sein.

Verwandte Themen