有一个任务,使用Google Data API 的 .NET 库来遍历 Google Drive 文件夹,查找所需的电子表格并更改所选电子表格的数据。
使用Google.GData.Documents.FolderQuery和Google.GData.Documents命名空间的其他类执行文件夹遍历。找到正确的文档后,需要使用Google.GData.Spreadsheets.Spreadsheet类对其进行管理。现在,我通过从文档 URL 中提取文档键、迭代所有电子表格、提取电子表格 URL 并比较两个键来找到Google.GData.Documents.DocumentEntry
类和类实例之间的对应关系。Google.GData.Spreadsheets.Spreadsheet
代码看起来像
private string GetKey(string url) {
string res = null;
Match match = Regex.Match(url, @"\?key=([A-Za-z0-9]+)");
if (match.Success) {
res = match.Groups[1].Value;
}
return res;
}
private SpreadsheetEntry GetSpreadSheetForDocument(SpreadsheetsService serviceSS, DocumentEntry entrySS) {
SpreadsheetEntry res = null;
string strSSKey = GetKey(entrySS.AlternateUri.Content);
Google.GData.Spreadsheets.SpreadsheetQuery query = new Google.GData.Spreadsheets.SpreadsheetQuery();
SpreadsheetFeed feed = serviceSS.Query(query);
foreach (SpreadsheetEntry entry in feed.Entries) {
if (GetKey(entry.AlternateUri.Content) == strSSKey) {
res = entry;
break;
}
}
return res;
}
是否有另一种更优雅和正确的方法来做到这一点?