2012-12-08 4 views
0

사용자가 Windows 8을 실행 중인지 여부에 따라 System.IO와 StorageFile 방법을 전환 할 수 있습니까? 두 개의 별도 프로젝트를 만들지 않아도됩니까? Windows 8에서 System.IO를 사용할 수 있다는 것을 알고 있지만 가능한 경우 (예 : 사용자가 Win8에있는 경우) 내장 된 비동기 메서드를 활용하고 싶습니다.가능한 경우 비동기 방법 사용

현재 테스트 할 Windows 7 컴퓨터가 없지만 프로그램 시작시 누락 된 라이브러리 오류가 발생할 수 있습니다. 이것을 할 수있는 방법이 있습니까?

+0

질문을 다시 작성하고 줄 바꿈을 추가하십시오. – rekire

+0

https://github.com/UbiqRT/Storage에서 얼마나 멀리 떨어져 있는지 잘 모르겠습니다. –

답변

1

StorageFile 클래스는 .NET 런타임의 일부입니다. 이러한 클래스는 루트 네임 스페이스 Windows에서 쉽게 인식 할 수 있습니다. Windows 런타임 API는 Windows 8에서만 사용할 수 있으며 주로 Windows Store apps에서 사용하도록 설계되었습니다. 나는 그것을 시도하지는 않았지만 그들은 can be used in desktop applications도 마찬가지입니다. 여전히 Windows 스토어 응용 프로그램이 샌드 박스 환경에서 실행되고 자신의 매니페스트에 선언 된 기능을 기반으로 파일 시스템에 대한 액세스가 제한되어 있기 때문에 파일 IO 클래스에서 작동하는 것이 얼마나 좋은지 잘 모르겠습니다.

데스크톱 응용 프로그램의 파일 IO의 경우 System.IO 네임 스페이스의 .NET 클래스를 사용합니다. .NET 4.5에는 비동기/대기 패턴을 사용하여 파일을 읽거나 쓰는 데 사용할 수있는 비동기 메서드가 모두 있습니다 (주로 Stream, StreamReaderStreamWriter 클래스). 그들은 Windows 8에만 구속되지는 않지만 .NET 4.5를 설치해야합니다. excludes Windows XP.

내가 아는 .NET 4.5에는 StorageFile.GetBasicPropertiesAsync과 같은 비동기 메소드가 없습니다. 이러한 호출을 비동기 적으로 수행해야하는 경우 동기 호출을 UI 스레드에서 호출 할 수있는 비동기 메서드로 래핑 할 수 있습니다.

1

비동기 StorageFile 메서드는 .net 4.5 프레임 워크의 일부입니다. 응용 프로그램은 프레임 워크를 설치 의존성으로 배포해야합니다. - .NET Framework Deployment Guide for Developers

+1

async/await는 .NET 4.5의 일부이지만 [StorageFile] (http://msdn.microsoft.com/en-us/library/windows/apps/br227171.aspx)은 Win RT입니다. System.IO를 사용하여 비동기 패턴을 구현할 수 있습니다. –

+0

또한 System.Environment.OSVersion을 사용하여 OS 버전을 가져오고 Hyper-V를 사용하여 가상 Windows 7을 실행할 수 있습니다. http://technet.microsoft.com/en-us/library/hh857623.aspx – viperguynaz

+0

@ JimO'Neil 특히, StorageFile.GetBasicPropertiesAsync와 같은 메소드를 사용하고 싶었지만 비 Win8 디바이스에서는 불가능합니다. – superwpf

관련 문제