1

データファイルでいっぱいのディレクトリを作成する必要があります。これらのファイルは一時的なユーザープライベートファイルです。

ファイルは一時的なものであり、システムによって削除されても問題ありませんが、ファイルはたくさんあるので、できれば再利用したいと思います。さらに、他のアプリケーション(同じユーザーとして実行されている)もこれらのファイルにアクセス/作成することを期待しています。これは、さまざまなプログラミング言語で機能する標準プロトコルが必要であることを意味します。

誰かがそれを提案することを知っているので、'/ tmp'または'%TEMP%またはjavaシステムプロパティを使用したくありませんjava.io.tmpdir。これらのディレクトリはシステムスコープです。また、機能するソリューションを見つけるだけでなく、プラットフォーム標準またはプラットフォーム承認の方法を見つけることに非常に興味があります。

さまざまなプラットフォームでこれらのファイルを見つける場所のリストを収集しようとしています。以下は私がこれまでに持っているものですが、私は本当に追加のプラットフォームや私がすでに見つけたものの検証をいただければ幸いです。

4

3 に答える 3

2

Mac OS Xでは、いくつかのオプションがあります。

$TMPDIR実際にはユーザースコープです。/ var/folders内のディレクトリですが。その中には、ユーザー固有のディレクトリ階層があります。が指す特定のディレクトリでは$TMPDIR、ユーザー以外は読み取ることができません。これは、Cocoa関数NSTemporaryDirectory()が返すものです。

〜/ Library / Caches/CompanyOrProductNameを使用することもできます。システムはこれを自発的にクリーンアップしませんが、Time Machineバックアップには含まれず、ユーザーは自由にそれを削除できます。

〜/ Library/CompanyNameは使用しないでください。おそらくあなたは〜/ Library / Application Support / CompanyNameを考えていましたか?それは適切かもしれませんが、通常は一時的なものには適していません。

于 2012-04-08T08:46:04.687 に答える
2
  • Solaris を実行していて、OS の再起動時にこれらのファイルが失われても構わない場合は、ファイルを に保存し/tmp/.<username>-<company>/、ディレクトリのアクセス許可を変更して保護することができます。
  • これらの一時ファイルを再起動後も存続させたい場合は、/var/tmp/.<username>-<company>/またはを使用します。~/.<company>
  • ユーザーのホーム ディレクトリがリモートでマウントされ、さまざまなマシン間で共有されており、一時ファイルも同じように共有したい場合は、~/.<company>/.

もちろん、.username-companyそして.company単なる提案です。他のアプリケーションやユーザーと競合しない任意の名前を使用できます。

~/.<company>~/.mozilla~/.openoffice.org~/.adobe~/.mysql~/.netbeans~/.thunderbirdなどのように、最も一般的な選択肢~/.VirtualBoxです。

いずれにせよ、Solaris およびおそらく他のほとんどの Unix および Unix 系システムでは、ホーム ディレクトリ以外に、標準で定義されているユーザーが書き込み可能なディレクトリは他にありませ/tmp/var/tmp

于 2012-04-09T05:31:25.113 に答える
0

これは私が見つけた最高のリストです。修正/提案がある場合は、お知らせください。

Windows の場合:

  1. 「ローカル アプリ データ」ディレクトリにディレクトリ「CompanyName」を作成します。次の方法でこれを見つけます。

    1. システム環境変数LOCALAPPDATA、または
    2. 次のコマンド ラインを実行して、レジストリを照会します。

      reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Local AppData
      

MacOSX の場合:

  1. $TMPDIRまたはココア関数NSTemporaryDirectory()
    • 3日ごとに自動クリア
  2. mkdir -m 700 ~/Library/Caches/CompanyOrProductName
    • システムによって自動的に削除されません(私のユースケースでは問題ありません)
    • TimeMachine によるバックアップなし
  3. mkdir -m 700 ~/Library/Application Support/CompanyOrProductName
    • システムによって自動的に削除されません(私のユースケースでは問題ありません)
    • TimeMachine によるバックアップ

Linux の場合:

  1. mkdir -m 700 ~/.company-name

Solaris / OpenSolaris の場合:

  1. ?

参考文献:

  • Cocoa with Loveでは、上記の 3 つの MacOSX オプションについて説明し、いくつかのセキュリティ問題についても説明しています。
于 2012-11-06T21:41:37.663 に答える