2017-10-10 1 views
-4

私は外部ファイル(.txtファイル)からデータを読み込むゲームを作っています。私が宣言して*fpfopen()関数に定義し、それにファイルのディレクトリを与えると、それはうまく動作します。 しかし、ここに問題があります。自分のプログラムを別のコンピュータやディレクトリに送るときは、ディレクトリが変わってしまいます。そのため、ゲームはファイルからデータを読み込むことができません。 プログラムのフォルダがどこにあっても、すべてのファイルの名前を検索して開く方法が必要です。C - アクセスする必要のあるファイルの名前を検出するプログラムを作成するにはどうすればよいですか?

+1

私にとって最も簡単な解決策のような音は、あなたの実行可能ファイルと一緒に必要なファイルを単に配布することです。その階層内のすべてのサポートファイルで最上位ディレクトリをZip/tarにするか、またはユーザー/インストールスクリプトにファイルを指す環境変数を定義させる。プログラムは、必要なファイルをファイルシステム全体で検索することはありません。彼らはどこにいるのかを知っています。 – yano

+2

C99標準ではディレクトリについて認識していません。しかし、POSIXはそうです。あなたの質問は、オペレーティングシステム固有のものです。あなたは[readdir(3)](http://man7.org/linux/man-pages/man3/readdir.3.html)、[nftw(3)](http://man7.org/linux/ man-pages/man3/nftw.3.html)、[stat(2)](http://man7.org/linux/man-pages/man2/stat.2.html) –

+2

あなたが知る必要があることは何ですか?ターゲットオペレーティングシステム上のソフトウェアインストールの基準。それはOSによって大きく異なります。 –

答えて

0

これはオペレーティングシステム固有のものです。 Linux上で、あなたは、しかし、このソリューションは、Linuxでのみ動作しますlocateシェルコマンドを使用して、その出力(http://www.linfo.org/locate.html

C: Run a System Command and Get Output?

How do I execute a Shell built-in command with a C function?

を解析することができます。私はヤノの上記のコメントのソリューションが良いと思う...

関連する問題