0

私はルビー...と靴...とプログラミングに不慣れですが、ここに私の問題があります:

計時された量をログとしてtxtファイルに入れるタイマーを作りました。また、これまでの合計を別のtxtファイルに保存します。それは私が望むように動作します...

パッケージ化してみました:rbファイルをパッケージ化しても機能しませんが、txtファイルを含むフォルダー全体をパッケージ化した場合にのみ機能します。

この作業コピーは、txtファイルなしで動作するようです(これらは何らかの形で組み込まれています。これをパッケージ化する方法があるので、関連するtxtファイルにアクセスできます(パスと関係があるかもしれません...)

ありがとう。

4

1 に答える 1

0

シューズパッケージャーの動作は時々醜いです。あなたはウィンドウを使用していると思うので、何が起こっているように見えるかを説明しようと思います。

バンドルされたShoes-App(スタンドアロンの.exeファイル)があります。ダブルクリックして起動するたびに、新しい一時ディレクトリ(c:\ tmp \ tempFileDirectoryの下にあります)に自分自身を抽出します。だから、それは毎回新しい一時的なディレクトリです!

現在のパスもこのtmpディレクトリに設定されます。このディレクトリには、アプリにバンドルしたtxtファイルも元の状態で含まれています。アプリの実行中にファイルの内容を変更してアプリを再起動すると、変更内容は失われます。これは、新しく作成されたtmpディレクトリに、元のtxtファイルの新しいコピーがあるためです。これまでのところ、データファイル(この場合はtxt、SQLITE-database-files、または構成ファイルなど)をバンドルアプリに入れるのは悪い考えです。

より良い方法:ユーザーのホームフォルダーに「隠し」フォルダー(フォルダーの名前は「。」で始まる必要があります)を作成します。Windowsでは、「c:\ Users\YourName」のようになります。必要なものをすべてそこに作成します。このディレクトリは一時的なものではないため、いつでも問題なくアクセスできます。これは一般的に、靴を使用しているときだけでなく、デスクトップのものをプログラミングするときのより良い解決策になるはずです。

于 2012-04-27T11:36:59.553 に答える