2010-01-19 6 views
5

C#/.NET에서 사용자 컴퓨터의 XML 파일을 프로그래밍 방식으로 변경하고 Silverlight (및 어떤 버전의 어떤 모드)가이 작업에 사용할 수 있는지 결정하려고하는 응용 프로그램을 작성하려고합니다.Silverlight는 로컬 사용자의 컴퓨터에서 파일을 변경할 수 있습니까?

여기에 워크 플로우는 다음과 같습니다

  • 사용자가 파일
  • 응용 프로그램

실버 라이트에서이 가능 원본 파일을 덮어 쓰기, 파일을

  • 응용 프로그램은 저장 파일을 수정 선택? 그렇다면 버전 및 조건은 무엇입니까?

  • +0

    Silverlight가 내 파일에 간섭하지 않기를 바랍니다. – zneak

    +0

    당신이 특별히 파일을 선택하지 않는 한 Silverlight는 파일을 보지 못한다는 것을 알고 있습니다 (대화 상자를 통해 있어야한다고 생각합니다). 내가 궁금한 점은 사용자가 SL 응용 프로그램 권한을 부여하려는 경우 (가능하다면) SL은 IO 스트림을 통해 원래 위치에 다시 쓸 수 있다는 것입니다. –

    답변

    2

    여기에 대한 답변 중 일부는 Isolated Storage에만 집중되었습니다. 다른 응용 프로그램이이 데이터에 액세스 할 필요가 없으면 격리 저장소가 사용자를위한 대답 일 수 있습니다. 이 link은 분리 저장 장치가 간략하게 사용 된 방법을 설명하는 블로그입니다.

    사용자가 파일을 선택했기 때문에 원하는 내용이 아닌 것 같습니다.

    물론 SL3에서는 사용자가 파일을 선택하게하고 읽을 수 있습니다.

    다시 저장하려면 사용자에게 "파일 저장"대화 상자를 표시하고 쓸 수있는 파일 스트림을 얻어야합니다.

    승격 된 권한으로 OOB를 실행하는 SL4에서 내 문서와 같은 사용자 폴더에 바로 이와 같은 파일을 저장할 수 있습니다.

    그냥 절대적으로 명확하게하기 위해 편집, 당신은 OpenFileDialog 읽기 전용 사용하여 획득 된 파일에 쓸 수 없습니다, 당신은 SaveFileDialog를 사용하여 인수로만 작성하는 파일을 읽을 수 없습니다.

    +0

    자세한 답변을 보내 주셔서 감사합니다. '다시 말하지만 다시 저장하려면 쓰기 가능한 파일 스트림을 얻기 위해 사용자에게 '파일 저장'대화 상자를 표시해야합니다. '라고 SL3에서 가능하거나 SL4가 필요합니까? ? –

    +0

    예를 들어 다른 자격이없는 한 현재 버전 SL3을 추천합니다. 브라우저 내 인스턴스 SL3에서 저장 대화 상자를 표시 할 수 있습니다. 사용자가 파일을 선택하면 코드에 맞게 선택한 파일에 쓸 수있는 권리가 부여됩니다. OpenFileDialog는'OpenRead'가 아니라'OpenWrite'가 아닌'FileInfo'를 제공합니다. 반면 SaveFileDialog는'OpenWrite'가 가능하지만'OpenRead'는 할 수없는'FileInfo'를 제공합니다. – AnthonyWJones

    +1

    확인. 나는 그것이 합리적이라고 생각한다. 따라서 사용자의 파일을 수정하려면 1) 사용자에게 파일을 요청하고, 2) 코드에서 파일을 수정 한 다음 3) 파일을 저장할 위치를 사용자에게 묻습니다. 사용자가 원래 파일을 덮어 쓸 것을 선택한 경우에는 선택 사항이지만 파일을 저장할 위치는 사용자가 지정해야합니다. –

    1

    SL3는 격리 된 저장소 영역에 액세스 할 수는 SL4 그들이 mydocs 다음에있는 파일에 액세스 할 수 있도록 신뢰할 수있는 응용 프로그램에 대한 더욱 액세스를 엽니 등 내 그림

    +0

    당신은 그걸 확장하고 그것이 어떻게 작동하는지 설명 할 수 있습니까? 구체적으로, SL3에서 어떤 워크 플로우를 성취 할 수 있습니까? –

    3

    실버 라이트 런타임은 보안 '샌드 박스'내부에서 작동합니다.

    파일 열기 대화 상자를 통해서만 컴퓨터 하드 드라이브에서 파일에 액세스 할 수 있습니다. Silverlight 2 이상을 사용하여 Isolated Storage에서 읽고 쓸 수 있습니다. 실버 라이트 4에서 오는

    당신은 등 내 문서, 내 음악, 내 그림과 같은 "특별한 디렉토리"에서 파일을 액세스 할 수있는 기능이있을 것이다 사용자에 임의의 파일을 변경할 수 없습니다 (http://weblogs.asp.net/nmarun/archive/2009/11/27/local-file-access-silverlight-4.aspx)

    +0

    파일 열기 대화 상자를 통해 액세스 한 원본 파일에 읽기 및 쓰기 변경 내용이 적용됩니까? –

    +0

    또한 어떤 버전에 적용됩니까? –

    1

    실버 라이트 응용 프로그램 컴퓨터. 그러나, 로컬 격리 된 저장소 사용하여 파일을 저장할 수 있습니다 : .NET Framework의

    을, 격리 된 저장소는 보안 정책을 위반하지 않고 로컬 컴퓨터에 데이터를 저장하기 위해 부분적으로 신뢰할 수있는 응용 프로그램을 할 수있는 저장 메커니즘입니다 컴퓨터에서 설정합니다. 격리 된 저장소는 .NET Framework의 첫 번째 버전 이후로 제공되며 일반적으로 표준 I/O 메커니즘에 액세스 할 수없는 다운로드 된 부분적으로 신뢰할 수있는 구성 요소에 특히 유용합니다. 그러나 이러한 동일한 응용 프로그램에는 격리 된 저장소를 사용할 권한이 일반적으로 부여됩니다. 이러한 방식으로 잠재적으로 신뢰할 수없는 출처에서 오는 응용 프로그램은 제어 된 방법 임에도 불구하고 여전히 일부 디스크 I/O를 수행 할 수 있습니다.

    다음 기사에서 그에 대한 자세한 내용을보실 수 있습니다 :

    Silverlight and Local Storage

    +0

    "Silverlight and Local Storage"링크를 가져 주셔서 감사합니다. 그러나 Silverlight 버전 2.0에도 적용됩니다. 그 이후로 더 많은 작업이 이루어 졌다면 궁금합니다. –

    +0

    분명히 Silverlight 4.0은'SaveFileDialog' (http://msdn.microsoft.com/en-us/library/system.windows.controls.savefiledialog%28VS.95%29.aspx)를 소개 할 것입니다. 그러나 이로 인해 사용자는 로컬 파일 이름을 지정할 수 있으며 응용 프로그램은 위치를 직접 선택할 수 없습니다. –

    1
    열기/저장 대화 상자가 액세스 Silverlight를 할 수 있습니다 내장 된 파일 OS는/모든 파일을

    수정 사용자가 Silverlight 앱이 액세스 할 수있는 파일 스트림을 반환하여 지정합니다.

    이외에도 Silverlight 앱은 자체 격리 된 저장소에 액세스 할 수 있습니다.

    +0

    버전이 적용됩니까? –

    +0

    파일 대화 상자는 V2.0 이상에 적용됩니다. Isolated Storage는 모든 버전에 적용됩니다. – Aaron

    관련 문제