Я читал о пространстве имен System.IO.IsolatedStorage в .NET и обнаружил, что могу использовать его для хранения файла в месте, уникальном для моей сборки или исполняемого файла. Например, следующий код:
using System.IO.IsolatedStorage;
public class Program
{
static void Main(string[] args)
{
IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForAssembly();
store.CreateFile("myUserFile.txt");
}
}
Создает файл "myUserFile.txt" в следующем месте:
C: \ Users \ Ник \ AppData \ Local \ IsolatedStorage \ bhxcjtkp.bpv \ wbjkcolm.3br \ StrongName.m2s0saaun2onmow3pd5pkml30lf2dobr \ AssemFiles
И использование IsolatedStorageFile.GetMachineStoreForAssembly()
создает похожую структуру каталогов в C: \ ProgramData \ IsolatedStorage.
Я вижу преимущество, которое позволяет этому API создавать для вас место хранения (не нужно самостоятельно придумывать путь к файлу). Но я был удивлен, увидев, что в IsolatedStorage не было других файлов, хранящихся в других сторонних приложениях (по крайней мере, на моем компьютере).
Вместо этого я обнаружил довольно много программ, хранящих файлы конфигурации, и такие просто в C: \ Users \ Nick \ AppData \ Local. Кто-нибудь знает причину, почему поставщики программного обеспечения могут уклоняться от использования IsolatedStorage? Или они используют другой API, который хранит файлы в AppData?