問題タブ [virtualfilesystem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
825 参照

c++ - 仮想ファイル システム内でプロセスを実行していますか?

私が達成しようとしているのは、実際にはフォルダーがシステム上の別の場所にあるのに、フォルダーが独自のフォルダー内に存在すると見なすプログラムを実行することです。

したがって、私のプログラムはプロセスを起動し、プロセスに次のように言います: C:\A にあるフォルダー A は、C:\Program Files (x86)\SomeProgram\A の独自のディレクトリ内にあります。

したがって、「仮想」ディレクトリはそのプロセスにのみ表示されます。

私は自分のプログラムをプログラムするために Qt を使用しているので、使用できる Qt 関数があれば (移植性に関して) 素晴らしいと思います。ただし、プラン C++ または Windows にバインドされた API は問題ありません。

NTFS ジャンクションまたはシンボリック リンクについて考えていましたが、特定のプロセスにバインドするどころか、C++ でそれらを作成する方法もわかりません。

前もって感謝します!

編集:

上記に関連して、 https ://superuser.com/questions/234422/does-windows7-support-symbolic-links-folder-shortcuts という質問を見つけました。ただし、コマンドラインから必要なアクションを実行する方法のみを示しており、プロセスに依存しません。

編集2:

いくつかの追加情報: いくつかの他のディレクトリで構成される仮想ディレクトリを作成しようとしていますが、マージされます (優先度システムを使用して、他のファイルから「勝つ」ファイルを決定しています)。これらのマージされたディレクトリは、マージされたファイルを含む 1 つのディレクトリとしてターゲット プロセスに表示されます。

0 投票する
1 に答える
508 参照

hook - Windows ファイル システムへのフックと仮想ファイル システムの挿入

Mod Organizerというプログラムに似たアプリケーションを開発中です。基本的に、プログラムが行うことは、人々がゲーム、Skyrim に mod をダウンロードしてインストールできるようにすることです。ただし、Mod Organizer は興味深いことを行います。(他の mod マネージャーのように) mod をゲームのデータ ディレクトリに直接インストールするのではなく、MO は各 mod を他の任意の場所にある独自のディレクトリにインストールし、ゲームの起動時にすべての mod をまとめて読み込みます。これは、mod の管理の手間が大幅に軽減されるため、重要です。

私の質問は次のとおりです。これをオンザフライ ファイル システムで作成する方法や、Windows に mod ファイルでいっぱいのディレクトリを別の場所に「ふりをさせる」方法はありますか。

最初は自分のコードでシンボリック リンクを作成することを考えていましたが、このガイドでは「フック」の道をたどり、特に EasyHook を試すことをお勧めしました。フックの基本的な概念 (基本的に OS からの信号を傍受し、何らかの目的でリダイレクトする) は理解できると思いますが、フックで実際にファイルをリダイレクトする方法はよくわかりません。

この種のフックに関する優れたリソースを知っている人、または私の問題に対するより良いアプローチを知っている人がいれば、助けていただければ幸いです。

0 投票する
1 に答える
80 参照

c# - .NET Windows API フォルダーにアクセスしたかどうかを確認する

フォルダにアクセスする前にダイアログウィンドウ(パスワードクエリ付き)を配置できる機能を探しています。そのような機能はありますか?また、Windows Explorer/cmd.exe がこれらのファイルへのアクセスを許可されている場合でも、この保護がどのプログラムよりも前にある場合、これは素晴らしいことです。それは可能ですか?

IOContainer、passwd などは使用していません。1 つのファイルに 20 GB は少し過剰であり、そのファイルを復号化するのに何年もかかると思います。パスワード保護をサポートし、ディスク上の通常のファイルシステムまたはフォルダーとして使用できる C# 用の VFS ソリューションはありますか?

ありがとう!

0 投票する
1 に答える
444 参照

linux - デバイス ファイルは、特定のファイル システムまたは Linux の仮想ファイル システムによって実装されていますか?

Tanenbaum の Modern OS book には、Linux ファイル システムのスケッチが 2 つあります。

ここに画像の説明を入力

ここに画像の説明を入力

両方のスケッチで、特定のファイル システム (ext4 タイプなど) (最初のスケッチでは「ファイル システム」、2 番目のスケッチでは「ファイル システム 1」) が「仮想ファイル システム」の下にリストされています。

違いは、

  • 最初のスケッチでは、「ファイル システム」は「ターミナル」および「ソケット」と同じレベルにリストされており、後者の 2 つは含まれていません。
  • 2 番目のスケッチでは、「ファイル システム 1」には、「通常ファイル」、「ブロック特殊ファイル」、「Char 特殊ファイル」、および「ネットワーク ソケット」が含まれます。

私の理解では、2 つのスケッチは同じものを示しているため、一貫性があるはずです。

私の質問は

  • 特定のファイル システム (ext4 など) はデバイス ファイルを実装し、それらを通常のファイルと同じように扱うようにしますか?それとも「仮想ファイル システム」の仕事ですか?

  • 上記の「ファイルシステム」と「ネットワークソケット」、「ブロック/文字特殊ファイル」の関係についての2つのスケッチの違いをどのように理解すればよいでしょうか?

0 投票する
1 に答える
1360 参照

java - 仮想ファイルシステム JIMFS を使用して作成されたファイルの読み取り

JIMFS を使用して VFS を作成しました。

別のメソッドでファイル (refData.csv) を読み取ろうとしています (パスは別のメソッドに渡されます)。

私が今まで試したことは次のとおりです。

残念ながら、現時点ではこれらの機能はありません。了解しました。デフォルト FS と仮想 FS を混在させています。

作成されたファイルにアクセスするには?.

0 投票する
0 に答える
176 参照

linux - qtバイナリの実行と/procの関係は?

Qt と Linux の内部は初めてです。これは、qt とその Linux での実行について理解を深めるためのものです。

Qt5 バイナリを Linux on Imx6 ベースの評価ボードで実行しています。次の方法でアプリケーションを実行できます。

これを使用しているときに、誤ってprocファイルシステムをアンマウントしました

その後、次のように実行しようとすると、アプリケーションでエラーが発生します。

  1. Qt/egl が proc ファイル システムにどのように関連しているか説明できる人はいますか?
  2. /proc から Qt/egl が必要とする特定の情報は何ですか?
  3. /proc をマウントせずにその情報を利用できるようにする方法はありますか?

私が間違った質問をしている場合は申し訳ありませんが、お時間をいただきありがとうございます..

**

編集:

** の出力はこれstrace -e open -f ./fast_cluster/fast_cluster -platform eglfs | grep '/proc'で与えられます

0 投票する
1 に答える
665 参照

jakarta-ee - java.lang.IllegalArgumentException: 指定された親は、org.jboss.vfs.VirtualFile.getPathNameRelativeTo にあるこの仮想ファイルの祖先ではありません

WAR を JBoss にデプロイしようとしていますが、以下の例外がスローされます。

これはどのように発生し、どうすれば解決できますか?

0 投票する
1 に答える
241 参照

android - ソースがftruncateを呼び出すとき、Android Marshmallow libsqlite.soはどのようにftruncate64を使用しますか?

当社の Android ソフトウェアは、正常に動作している SQLite 用の仮想ファイル システム (VFS) を使用しています。Android 6 (Marshmallow) で使用を開始すると、ftruncate() に渡される大きな負のオフセット、スタック オーバーフロー、データの破損など、あらゆる種類の奇妙なエラーが発生し始めました。readelf(他のツールの中でも)使用して、最終的に問題を追跡しました。によって使用されるインポートの変更libsqlite.so: Lollipop と以前のインポートftruncatemmap、最新のライブラリのインポートftruncate64mmap64。API のバージョンに応じて使用する関数を変更することで、問題を「解決」しました (Marshmallow はバージョン 23 です)。

http://www.sqlite.org/2015/sqlite-amalgamation-3081002.ziphttps://github.com/android/platform_external_sqlite/blob/master/dist/sqlite3.cの両方のソースコードを見ると、Cソース呼び出しは、私たちの方法論ftruncatemmapせいぜい「疑わしい」ものにします。

libsqlite.soimport と useはどのようftruncate64mmap64行われ、ソース コードはftruncateとのみを呼び出しmmapますか? 正しいソース コード リポジトリを参照していませんか? リンクステップで何かが起こっていますか?Marshmallow は、これらの関数の非 64 ビット バージョンのサポートを削除しましたか?

0 投票する
1 に答える
1928 参照

linux - Rustで仮想ファイルシステムを作成するには?

ネットワーク経由でフォルダーをマウントするアプリケーションを開発しています。SMB によってマウントされたフォルダーと同様に表示されるはずですが、サーバーが SMB プロトコルを使用していないことだけが異なります。これに似ています: サーバー A はファイルを含む HTTP サーバーであり、クライアント B はそれらのファイルをマウントして、最初にダウンロード (ストリーミング) せずに直接アクセスできるようにする必要があります。したがって、クライアントはファイルをストリーミングできる必要があります。つまり、任意の位置でファイルにアクセスできます。また、サーバー A に保存されているファイルは、特定の方法でエンコード、圧縮、暗号化、およびパケット化されているため、仮想ファイル システムに提示する前に、それらをデコードする (内部処理を行う) 必要があります。クライアントには読み取り専用アクセスが必要です。Windows と Linux でクライアントを利用できるようにしたい。次のようになります。

クライアントはフォルダーをマウントし、1248989 の位置にある /virtualfolder/data.file にアクセスしようとしています。サーバーに保存されているデータは、任意の長さのブロックに分割されます (1 メガバイトとしましょう)。次に、バイト 1000000 ~ 1999999 に対応するファイルの一部をダウンロードし、デコードしてキャッシュし、ユーザーがこのデータにアクセスできるようにする必要があります。

もちろん、デコード プロセスは内部で行われます。必要なのは、ファイルの名前とサイズを表示し、ユーザーがアクセスできるようにする仮想フォルダー (またはファイル システム) を OS 上に作成するための API だけです。

次のようになります: [OS] <-virtual filesystem API-> [Client] <-some protocol-> [Server]

ファイルへのアクセスは次のようになります。

[OS] /vfs/somefile.tar ファイルから 0-255 バイトを取得したい

[クライアント] サーバーのファイル /vfs/somefile.tar からブロック 0 ~ 999999 を取得しています。これはブロック B5F997084DC8687 に対応します。B5F997084DC8687 をダウンロードしてデコードします。

[クライアント] 0 ~ 255 の /vfs/somefile.tar です。

[OS] /vfs/somefile.tar ファイルから 256 ~ 511 バイトを取得したい

【クライアント】B5F997084DC8687に該当します。このファイルは既にダウンロードされ、キャッシュされています。

[クライアント] 256-511 の /vfs/somefile.tar です。

かなり簡単だと思います。そのようなもののための簡単な API はありますか?