Hallo
und danke für den Welcome.
Direkter Aufruf:
Zitat: |
"System.InvalidOperationException: Synchronous operations should not be performed on the UI thread. Consider wrapping this method in Task.Run.\r\n at System.IO.WinRTFileSystem.EnsureBackgroundThread()\r\n at System.IO.WinRTFileSystem.DirectoryExists(String fullPath)\r\n at System.IO.Directory.Exists(String path)\r\n at QKameraVS01.MainPage.myFileMove()\r\n at QKameraVS01.MainPage.dispatcherFile_Tick(Object sender, Object e)" |
Aufruf über
C#-Quelltext
1: 2:
| var t = Task.Run(() => myFileMove()); t.Wait(); |
ergibt keinen Fehler, es werden aber auch keine Dateien - die vorhanden sind - gefunden. Das Subdir wird gefunden, das createdirectory wird ganz einfach negiert. Wenn es schon mal da war, und man löscht es, so kann es angelegt werden.
Der folgende Code läuft auch ohne Probleme, nur werden genausowenig die Dateien erkannt. Es sieht so aus als würde die $&%/% Sandbox von MS den Zugriff verweigern.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| Debug.WriteLine("ButtonFile_Click " + StartDirectory + "\n"); StorageFolder myStartFolder = await StorageFolder.GetFolderFromPathAsync(StartDirectory); StorageFolder myEndFolder = await StorageFolder.GetFolderFromPathAsync(EndDirectory); StorageFileQueryResult myRes = myStartFolder.CreateFileQuery(); IReadOnlyList<StorageFile> myList = await myRes.GetFilesAsync(); foreach (StorageFile datei in myList) { Debug.WriteLine("CopyFile " + datei.Name + "\n"); await datei.MoveAsync(myEndFolder); } |
Die Bilder, um die es mir geht, kann ich Problemlos speichern, nur später aus der UW nicht mehr verschieben.
So wie es aussieht muß man mit dem Picker zuerst den Benutzer was auswählen lassen, damit man die Datei verwenden kann. Das ist ein absolutes NoGo für automatisierte Anwendungen die auf Produktionsautomaten laufen.
Die Frage erweitert sich für mich -> Kann man im Manifest oder sonstwo die nötigen Rechte setzen.
Zitat aus dem vorher geposteten Link:
Zitat: |
down vote
this is not true: Files which are opened with a file extension association or via sharing try it, by opening files from mail (outlook) or from the desktop... it simply does not work you first have to grant the rights by the file picker. so this ist sh... |
ACK
Andreas
Moderiert von Th69: Kommentare aus C#-Code entfernt.