Je dois énumérer le contenu d'un appareil Android MTP et transférer des fichiers de l'appareil vers un PC Windows.WPD API - Impossible de transférer le contenu de l'appareil (SSCCE inclus)
En suivant le guide trouvé ici Transferring Content from a Device to a PC J'ai tenté de transférer un document texte simple dans un répertoire spécifié. Cependant, le fichier de sortie est toujours vide, même lorsque la valeur retournée indique que X number of bytes have been written.
J'ai créé un SSCCE en utilisant uniquement l'API Windows recommandé appelle de reproduire facilement la question. J'ai utilisé la documentation API et le official sample project pour référence.
Pour tester, j'ai un téléphone Android connecté via MTP avec un dossier sur la racine appelé testFolder
et à l'intérieur il y a un fichier testfile.txt
avec le texte hello world
. Lors de l'exécution de cette application, la sortie indique que 11 octets ont été écrits, mais le fichier est vide. S'il vous plaît essayez-le vous-même?
Je n'arrive pas à comprendre pourquoi le fichier est toujours vide. Des idées?
Merci pour votre temps.
Pas grand chose à voir avec Qt mais avec Win32 API. Il est difficile de comprendre ce qui s'est passé avec votre code, mais vous pouvez essayer d'obtenir la dernière erreur et la description: https://msdn.microsoft.com/en-us/library/windows/desktop/ms680582(v=vs.85) .aspx – AlexanderVX
@AlexanderVX Merci! Juste implémenté cela et il n'y avait pas d'erreur. Appelant 'GetLastError()' a également renvoyé 0. La grande chose qui m'a bloqué est que le fichier a été créé et 'StreamCopy' signale que 8 octets ont été écrits.Voici ma mise en œuvre exacte de cette prise directement de l'échantillon https://github.com/pauldotknopf/WindowsSDK7-Samples/blob/master/multimedia/wpd/wpdapisample/cpp/ContentTransfer.cpp#L80 – mrg95
Peut-être que outputPath.toStdWString () .c_str() fait une chaîne de caractères large de wchar_t mais le flux s'attend à un caractère char? Et puis zéro d'un octet du caractère large vient et qui est traduit à la fin de la chaîne? – AlexanderVX