gpt4 book ai didi

java - 如果已存在则不创建文件夹并返回文件夹 ID

转载 作者:行者123 更新时间:2023-11-30 03:15:14 25 4
gpt4 key购买 nike

我正在使用 Google Drive API。当我的应用程序第一次运行时,用户对我的应用程序进行身份验证,然后我在 Google 云端硬盘的根目录中创建一个文件夹,假设文件夹名称为“我的文件夹”。该应用程序工作正常,直到用户将该应用程序与 Android 中的“Google 设置”应用程序断开连接。断开连接后,用户再次打开应用程序并再次授权该应用程序,并再次使用不同的 ID 创建另一个具有相似名称“我的文件夹”的文件夹。如果该文件夹存在,我不想再次创建该文件夹,并且想在不请求根文件夹中的所有文件和迭代列表的情况下获取它的 ID

@Override
protected void onActivityResult(final int requestCode,
final int resultCode, final Intent data) {
switch (requestCode) {
case REQUEST_ACCOUNT_PICKER:
if (resultCode == RESULT_OK && data != null
&& data.getExtras() != null) {
String accountName = data
.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
if (accountName != null) {
credential.setSelectedAccountName(accountName);
service = getDriveService(credential);

SharedPreferences preferences = getSharedPreferences(
"pref", MODE_PRIVATE);
preferences.edit().putString("accountName", accountName)
.commit();



}
}
break;
case REQUEST_AUTHORIZATION:
if (resultCode == Activity.RESULT_OK) {
new Thread(new Runnable() {

@Override
public void run() {


File body = new File();
body.setTitle("My Folder");
body.setMimeType("application/vnd.google-apps.folder");

try {
File file = service.files().insert(body).execute();
String id = file.getId();

MyUtilities.saveInSharedPreference("drivefolderid",
id, ImportWizard.this);
Log.v("folder id ", "==>>" + id);
} catch (UserRecoverableAuthIOException e) {
e.printStackTrace();
startActivityForResult(e.getIntent(),
REQUEST_AUTHORIZATION);
} catch (IOException e) {

// TODO Auto-generated catch block
e.printStackTrace();
}

}
}).start();

} else {
startActivityForResult(credential.newChooseAccountIntent(),
REQUEST_ACCOUNT_PICKER);
}
break;

}
}

最佳答案

您不需要迭代所有用户的文件。我假设您正在为该文件夹指定一个固定名称。如果是这样,请使用驱动器的搜索功能按名称和类型查找文件夹。它是一个单一结果的单一调用。希望用户没有创建另一个同名文件夹。

关于java - 如果已存在则不创建文件夹并返回文件夹 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20249304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com