Virtuelles Dateisystem

Cromon

Erfahrenes Mitglied
Hallo miteinander!

Ich habe hier eine mehr konzeptionelle, denn eine praktische Frage, aber ich hoffe dennoch, ein paar von euch haben vielleicht eine Idee ;)

Und zwar geht es um folgendes: Ich plane, ein Dateisystem eines Servers bei mir lokal anzeigen zu lassen im Windowsexplorer (sozusagen wie ein Netzlaufwerk). Allerdings stellt sich hier die Frage, wie ich das wohl am besten hinbekommen.

Vom groben Ablauf habe ich es mir in etwa so vorgestellt:
- Applikation hat einen Ordner lokal, der die Struktur darstellt (einfach normal die Dateien und Ordner ohne Inhalt, aber schon mit den korrekten Infos (Dateigrösse, etc))
- Klickt man eine Datei an, so holt sich die Applikation vom Server die Informationen und lädt die Datei. Sind alle Handles wieder freigegeben, so wird die Datei wieder entladen.
- Darstellung als virtuelles Laufwerk (bereits erledigt)

Wobei ich beim zweiten Punkt etwas schwanke, oder ob ich nicht direkt alle Daten gleich vom Server abfragen möchte und diese dann auf den Client-PC zu schreiben.

Wenn jemand einen Ansatz oder eine Idee für Punkt 1 oder 2 hätte, so würde ich mich riesig freuen :)

Gruss
Cromon
 
Also, hab ich das richtig verstanden:

Du willst in einem Ordner das Dateisystem eines anderen PCs schreiben, aber nur die größe der Dateien ohne daten?

Falls das so richtig ist wüsste ich 2 Möglichkeiten für Punkt 1:
a) Du hängst die Dateigröße mit hinten an den Namen oder
b) du erstellst eine Datei mit gleichem Namen wie auf dem Server und füllst sie dann einfach solang mit 0 (oder was anderem) bis die richtige Größe erreicht ist. Könnte aber bei großen Dateien dann alles etwas lange dauern.

Zu Punkt 2:
Ich denke am einfachsten ist es (auch in Verbindung zu Punkt 1) direkt alle Daten zu übertragen, was bei zu großen Dateien aber auch wieder zu einer langen Ladezeit führt.

Wüsste leider nicht wie man sonst die richtige Größe eintragen lassen kann.

Gruß Anfänger.
 
Hallo Anfänger92!

Meine Hauptintention war es, dass der Benutzer nicht den kompletten Speicherplatz zur Verfügung stellen muss, um zumindest die Struktur zu sehen und die ungefähre Grösse abzuschätzen. Die (in meinen Augen) schnellste Möglichkeit die Dateigrösse zu ändern habe ich zwar gefunden, allerdings kostet mich dies auch den Speicherplatz, den ich darstellen möchte:
Code:
	HANDLE hF = CreateFile("test.txt", GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, 0, NULL);
	FILE_END_OF_FILE_INFO feofi;
	feofi.EndOfFile.QuadPart = 4800000000;
	SetFileInformationByHandle(hF, (FILE_INFO_BY_HANDLE_CLASS)6, (LPVOID)&feofi, sizeof(feofi));

Immerhin schonmal ein Anfang ;)

Gruss
Cromon
 
Hi.

Am elegantesten wäre es wohl, wenn du einfach den Explorer erweiterst.

Namespace Extensions
Microsoft Windows Explorer provides a graphical representation of the Shell namespace combined with tools that allow users to interact with Shell objects. With a namespace extension, you can take any body of data and have Windows Explorer present it to the user as a virtual folder. When a user browses into this folder, your data is presented as a tree-structured hierarchy of folders and files, much like the rest of the Shell namespace. Users and applications are able to interact with the contents of this virtual folder in much the same way as with any other namespace object. This document discusses how to create a namespace extension.

lg, Alex
 
Zurück