0

Microsoft Visual Studio 커뮤니티 2015 버전 14.0.25.425.01 업데이트 3에서 Microsoft .NET Framework 버전 4.6.01055로 UWP 응용 프로그램을 빌드하고 있습니다. 현재 사용하고있는 AWS .NET SDK의 현재 버전은 v3.1.0입니다.UWP 응용 프로그램에서 백그라운드 작업을 실행할 때의 문제

시간 트리거 된 백그라운드 작업 프로젝트를 생성 한 일정 파일 업로드 작업을 수행하고 싶습니다.

내 앱 프로젝트 (저장소 파일 탐색기)에서 백그라운드 작업을 작성한 Windows 런타임 구성 요소 (ScheduledUploadBackgroundTask)를 추가했습니다. Image1

나는 백그라운드 업로드 작업에서 사용되는 많은 유틸리티를 정의한 별도의 클래스 라이브러리 (AppUtils)도 만들었습니다.이 라이브러리는 백그라운드 작업 WinRT에서 참조됩니다. Image2

이제 백그라운드 작업에 파일 경로가 있습니다. GetFileFromPathAsync (filePath)를하면 AccessDeniedException이 발생합니다. Image3

나는 WinRT 앱의 지역 & 임시 폴더하지만 난이 가능하지/로컬 임시 폴더에 복사 잎 매우 큰 볼륨이 될 수 있습니다 업로드하고있는 데이터 (파일/폴더)에 액세스 할 수 있는지 알고 있습니다.

이 문제의 해결 방법을 제안하십시오.

답변

1

아시다시피 UWP에서 직접 경로 (C:\...)를 통해 파일을 가져올 수 없습니다. Storage API를 사용하여 파일을 가져와야합니다.

처음으로 FileOpenPicker을 사용해야하고 파일 및/또는 위치 (예 : 폴더)를 저장하기 위해 FutureAccessList을 사용하고 나중에이 항목에 쉽게 액세스 할 수 있습니다.

코드 예제를 더 보려면 File picker sampleFile access sample을 참조하십시오.

+0

하지만 File/Folder Picker를 사용할 수 없도록 백그라운드 작업 (WRC의 코드)에서 파일을 가져오고 싶습니다. –

+0

@ sanster23 처음으로 File/Folder Picker를 사용해야합니다. 파일이나 위치를 FutureAccessList에 저장해야하기 때문입니다. 그런 다음 다음 사용에서는 FutureAccessList를 통해 파일을 직접 가져올 수 있습니다. –

+0

거기에 Picker를 사용하여 BackGroundTask에서 피커를 열지 않고도 해결 방법이 있습니다 –

관련 문제