我正在使用LiveSDK for Windows Phone 8(最新的SDK版本)上传文件:
LiveOperationResult res = await liveClient.BackgroundUploadAsync(_skyDriveFolderId, new Uri("/shared/transfers/" + myLocalFilename, UriKind.Relative), OverwriteOption.Overwrite);
当myLocalFilename
仅包含普通的ASCII字符(如“fileTEST1234.zip”)时,此方法可以正常工作。但是当文件名包含空格或特殊字符(如“ä”,“ß”等)时,则会将空(0字节)文件上载到SkyDrive(远程文件的名称正确)。所以我认为当本地字符串文件名转换为Uri对象时会出现问题。
一种选择是创建一个带有标准名称的临时本地文件副本,上传它,然后将其重命名为SkyDrive上的另一个名称。
有没有更好的方法来解决这个问题?