3

すべてのデータが保存されている1つのファイル(1つのファイル=仮想ディスク)など、いくつかの仮想ファイルシステムを試してみたいと思います。たとえば、仮想ディスクを開いてファイルを挿入したり、ファイルにデータを書き込んだり、ファイルからデータを読み取ったり、ファイルを開いたり、fseekを使用したりできます。

そのために使用できるライブラリはありますか?ライセンスなどは重要ではありません。退屈なので自分のマシンでテストしたいので、C ++/Cで試してみたいと思います。

前もって感謝します!:)

ライブラリがWindowsのみの場合は、それでも問題ありません。2つのプロジェクトを作成できるように、Linuxライブラリを見つけるかもしれません。


編集:BRPocockのおかげで、私の質問が少し不明確であることを知っています。私が本当に必要としているのは、ファイルを保存し、ファイルを読み取り、ライブラリがすでに提供しているVFSでファイル操作を実行する機能を備えたライブラリです。そしてもちろん取り付け。だから、私が好むのは、C++でこの関数を提供するライブラリがあるかどうかです。

OpenVirtualDrive(const name[]);//
CloseVirtualDrive(handle);//
fopen(const name[], mode);//open file, return handle
fclose(handle);//close handle
ftemp(); //open file as temporary file
fremove(const name[]);//delete file

fwrite(handle, array[]);//write array to file
fread(handle, array[], size = sizeof array, pack = false);//read from file
fputchar(handle, value, utf8 = true);//put char into file
fgetchar(handle, value, utf8 = true);//read char from file, move pointer
fblockwrite(handle, const buffer[], size = sizeof buffer);//write block
fblockread(handle, buffer[], size = sizeof buffer);//read block, move pointer

fseek(handle, position = 0, seek_whence: whence = seek_start);//move pointer
flength(handle);//size of file
fexist(const pattern[]);//check if file exists
fmatch(name[], const pattern[], index = 0, size = sizeof name);//search for file

これは単なる擬似コードです:P

4

2 に答える 2

4

Linux (および MacOSX を含む多くの BSD) は、FUSE システム (http://fuse.sourceforge.net/) を使用してこれらの種類のサービスを提供します。「ネット」で多くの例を見つけることができるはずです。

Windows で同じことを行う「受け入れられた」方法は、デバイス ドライバーのロード可能なモジュール ( .dll)として記述することだと思います。 /gg463062を出発点として、おそらく。

于 2012-05-09T17:19:41.573 に答える
2

私たちのSolFSがその仕事をします。評価ライセンスは問題ありません。非営利の公共プロジェクトにも無料のライセンスを提供しています。他のアプリケーションからファイルシステムを表示したい場合は、OSエディションのSolFSが必要です。その関数をアプリケーションからのみ呼び出す場合は、SolFSアプリケーションエディションで十分です。

于 2012-05-09T18:50:43.043 に答える