アプリケーションに関連するデータはどこに保存すればよいですか?構成ファイルはどこに保存すればよいですか?一時ファイルはどこに保存すればよいですか?「ドキュメント」でやるべきですか?"アプリデータ"?等...
データをディスクに保存するためのベストプラクティスは何ですか(おそらく、特別なフォルダのベストプラクティスですか?!)?
アプリケーションに関連するデータはどこに保存すればよいですか?構成ファイルはどこに保存すればよいですか?一時ファイルはどこに保存すればよいですか?「ドキュメント」でやるべきですか?"アプリデータ"?等...
データをディスクに保存するためのベストプラクティスは何ですか(おそらく、特別なフォルダのベストプラクティスですか?!)?
ApplicationData:アプリケーションが「ユーザーごと」のデータとして必要とし、他のカテゴリに分類されないものすべて。標準の構成ファイルはここにあります。
CommonApplicationData:「ユーザーごと」のデータではないすべて。
LocalApplicationData:ユーザーごとの非ローミングデータ。たとえば、このマシンにのみ保存されることを確認したいすべてのもの(マシンアクティベーションコード、多くの場合、キャッシュ/一時データも)。標準の一時ファイルはここにあります。
MyDocuments:ユーザーが実際に「認識可能な単一のドキュメント」として識別するユーザーデータ。
ファイル名を気にしない場合は、tempfileAPIを使用してtempディレクトリに一時ファイルを生成することもできます。これを手動で行うべきではありません。たとえば、.NETではPath.GetTempFileName()、その目的に使用できます。
Windows 7クライアントソフトウェアロゴプログラムから:
AppDataは自動構成とプロファイルである必要があり、ドキュメントはユーザーが保存したファイルのみである必要があります。複数のシステムで役立つ可能性のあるものはすべてAppData/Roamingに配置し、その他(マシン固有)はAppData/LocalまたはLocalLowに配置します。一時ファイルの場合は、Tempディレクトリを使用します。
一般に、Windowsのベストプラクティスは、適切な環境変数に従うことです。保持したい構成データは%APPDATA%に配置し、一時ファイルは%TEMP%に配置する必要があります。
これには、Windowsが物事を変更した場合にひどく壊れることがなく、人々が持つ可能性のある奇妙な構成を尊重するという利点があります。
また、「ドキュメント」はユーザーが作成したデータ専用であり、プロンプトの後にのみ使用する必要があるという他の回答にも同意します。
さらに、パスを取得するには、SHGetFolderPathまたはSHGetKnownFolderPath(Vista +の場合)を使用する必要があります。これにより、現在のインストールのバージョンや言語に関係なく、現在のシステム上の正しい場所が提供されます。使用しているパスをハードコーディングしないでください。