2011-08-19 1 views
8

.NET에서 System.IO.IsolatedStorage 네임 스페이스에 대해 읽었으며이를 사용하여 어셈블리 또는 실행 파일에 고유 한 위치에 파일을 저장할 수 있음을 알았습니다. 예를 들어, 다음 코드를누구든지 .NET의 System.IO.IsolatedStorage를 사용합니까?

C :

using System.IO.IsolatedStorage; 

public class Program 
{ 
    static void Main(string[] args) 
    { 
      IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForAssembly(); 
      store.CreateFile("myUserFile.txt"); 
    } 
} 

는 다음 위치에서 파일 "myUserFile.txt"작성 \ 사용자 아이디 \의 AppData \ 로컬을 \를 \ IsolatedStorage \ bhxcjtkp.bpv \ wbjkcolm.3br \ StrongName.m2s0saaun2onmow3pd5pkml30lf2dobr \ AssemFiles

그리고 IsolatedStorageFile.GetMachineStoreForAssembly()를 사용하여이 C에서 유사한 디렉토리 구조를 생성합니다 : \ 경우 ProgramData \ IsolatedStorage.

이 API를 사용하면 파일 경로를 스스로 생각할 필요없이 저장 위치를 ​​만들 수있는 이점을 확인할 수 있습니다. 그러나 IsolatedStorage에 다른 타사 응용 프로그램 (적어도 내 컴퓨터에는없는 파일)에 저장된 다른 파일이없는 것을보고 놀랐습니다.

대신 C : \ Users \ Nick \ AppData \ Local 아래에 구성 파일을 저장하는 꽤 많은 프로그램이 있습니다. 소프트웨어 공급 업체가 IsolatedStorage를 사용하지 못하게하는 이유를 아는 사람이 있습니까? 아니면 AppData에 파일을 저장하는 다른 API를 사용하고 있습니까?

+1

저는 많은 사람들이 많은 사람들이 사용하고 있다고 확신합니다. – BoltClock

답변

5

우리가 발견 한 한 가지 이유는 응용 프로그램이 격리 된 저장소에서 사용할 경로를 식별하는 데 사용하는 알고리즘이 응용 프로그램 버전에 따라 다르다는 것입니다. 응용 프로그램의 새 버전을 설치하면 이전에 저장된 데이터에 액세스 할 수 없게됩니다. 이 시나리오가 작동하도록하는 옵션이 있지만 확신 할 수는 없지만 일정한 저장소 경로로 이동했습니다.

+0

흥미 롭습니다. 그것은 아주 잘 알고 있습니다. –

+0

일부 Microsoft 기술 (ClickOnce 등)이 자동으로 버전 업그레이드를 처리합니다. – ghord

1

격리 된 저장소는 응용 프로그램 및 사용자 설정 및 이와 같은 데이터에 이상적입니다. "그와 같은 데이터"란 사용자가 보지 못했던 이유 때문에 애플리케이션에서 중요하지 않은 데이터를 의미하지만 사용자의 눈을 멀리하는 데 유익합니다.

격리 된 저장소를 지우는 것은 매우 쉽습니다. 따라서 항상 이것이 사실이라고 기대하면 실망하지 않을 것입니다.

+0

감사합니다. 솔리드 조언 같은데. –