0

私は、いくつかのファイルを書き込み、後でファイルの値を読み取るJavaアプリケーションを作成しています。InstallShieldを使用して、の下C:\Program Filesにアプリケーションをインストールしています。これは通常、一時ファイルが作成される場所です。ただし、Windows 7を使用している場合、ファイルは代わりにユーザーの一時フォルダーの下にランダムな名前で作成されます。

これが私のコードです...

File usersTemp = File.createTempFile("users", null,temp);

そして、これは生成されるファイルです...

C:\Users\TP\AppData\Local\Temp\users2343200092608531612.tmp

ファイルは乱数で生成されるため、処理のためにファイルを取得することは困難です。これを行うためのより良い方法はありますか?

4

3 に答える 3

2

user.home スーパーユーザーとして実行している場合を除き (そうではない可能性があります)、ユーザーのホーム ディレクトリ内のファイルのみを編集できます。これは、システム プロパティで見つけることができます。

System.getProperty("user.home")

したがって、アプリケーションのアプリケーション データ フォルダーにファイルを保存する場合は、次のようにします。

File appDataFolder = new File(System.getProperty("user.home"), "Local Settings\\Application Data\\YourProgramName");

次に、そのフォルダーの下に物を保存すると、それらは残ります。

于 2012-04-11T02:38:16.327 に答える
1

ファイルを通常どおりに保存できない理由がありますか (好きな名前を付けてください)。私は Windows 7 用に多くの Java プログラムを作成してきましたが、ファイルの保存に問題はありませんでした。

FileOutputStream またはファイルを保存するために通常使用するメソッドを使用するだけです。

于 2012-04-11T02:34:12.097 に答える
1

一時ファイルの定義は、短期間だけ存在する必要があるというものです。アプリケーションの実行間で残っている可能性がある、より長い時間持続するファイルを作成したいと思われますか? この場合、適切な名前のファイルを作成する必要があります...

new File("c:\filename.txt").createNewFile();

そうすれば、アプリケーションを実行しているオペレーティング システムに関係なく、適切なディレクトリと名前を選択できます。

于 2012-04-11T02:35:43.113 に答える