我试图使用查询在Google云端硬盘应用程序文件夹中获得IDriveResource,但我在使用类型转换时遇到了问题。 这里是我到目前为止的代码:如何使用Drive API在Google Drive中查询Xamarin.Android的IDriveResource?
using (IDriveFolder appFolder = DriveClass.DriveApi.GetAppFolder(googleApiClient))
using (QueryClass query = new QueryClass.Builder().AddFilter(Filters.Eq(SearchableField.Title, MY_FILE_NAME)).Build())
using (var queryResult = await appFolder.QueryChildrenAsync(googleApiClient, query))
using (var driveItem = queryResult.MetadataBuffer)
{
using (var driveFile = await driveItem.DriveId.AsDriveFile().OpenAsync(googleApiClient, DriveFile.ModeWriteOnly, null))
using (var outputStream = driveFile.DriveContents.OutputStream)
using (var writer = new OutputStreamWriter(outputStream))
using (var changeSet = new MetadataChangeSet.Builder()
.SetLastViewedByMeDate(new Java.Util.Date())
.Build())
{
writer.Write(MY_TEXT);
writer.Close();
driveFile.DriveContents.Commit(googleApiClient, changeSet);
}
}
但是,编译器不driveItem认识驱动器Id财产。我需要输入driveItem,但编译器不会接受任何选项。如果它接受driveItem声明(如MetadataBuffer),它将不具有DriveId属性。如果我尝试使用IDriveFile或IDriveResource,它将不会接受变量声明中的强制转换。
我确实有试图driveItem传递给像一个方法,当同样的问题:
private async Task<bool> saveDriveItem(???? driveItemToSave)
{
...
}
我不能使用这种方法,因为我无法找到合适的? ??键入即可使用。
任何想法?
谢谢。
感谢。我忘了缓冲区可以带来多个文件。 – Dpedrinha
@Dpedrinha没问题... – SushiHangover
SushiHangover这里真的很奇怪。我的应用程序只使用一个xml文件。如果文件不存在(queryResult.MetadataBuffer.Count == 0),它会创建一个。但每次启动我的应用程序时,它都会创建一个新应用程序。 queryResult始终返回0 MetadataBuffer.Count。您是否知道在Android设备上进行调试时可能会发生的任何已知错误? – Dpedrinha