2017-06-23 3 views
-1

Ich arbeite an einem Windows 10 Universal C++ Projekt und ich versuche, eine Binärdatei im Lesemodus mit std::ifstream zu öffnen.std :: ifstream :: open() schlägt in Windows 10 Universal apps

Dies ist mein Code:

std::ifstream imgFile("C:\\Users\\GuiTeK\\Desktop\\picture.bmp", std::ios::binary); 

if (imgFile.is_open()) 
{ 
    std::cout << "OK" << std::endl; 
} 

else 
{ 
    int error = errno; 
    std::cerr << "KO: " << error << std::endl; 
} 

Problem ist, dass es hält 13 mit Fehler Fehler, die "Die Daten sind ungültig" (C. F. System Error Codes) bedeutet.

Allerdings funktioniert der exakt gleiche Code einwandfrei in einem Win32 Console Application C++ - Projekt.

Was ist los?

+1

Welche Berechtigungen fordert die Manifestanforderung Ihrer Anwendung an? –

Antwort

2

UWP-Apps sind nicht berechtigt, auf alle Dateien auf dem Gerät zuzugreifen. Standardmäßig können Apps auf bestimmte Speicherorte des Dateisystems zugreifen, z. B. Anwendungsinstallationsverzeichnis oder Anwendungsdatenspeicherorte. Weitere Informationen finden Sie unter .

"C:\Users\GuiTeK\Desktop\picture.bmp" ist ein Standort, auf den Sie nicht direkt zugreifen können. In UWP benötigen wir eine File​Open​Picker, um auf eine solche Datei zuzugreifen. Eine wichtige Regel ist hier Skip the path: stick to the StorageFile.

Weitere Informationen zum Umgang mit Dateien in UWP finden Sie unter Files, folders, and libraries und , File picker sample auf GitHub.

Verwandte Themen