11

私が管理している Google ドメインのファイルが悪い状態になっています。ルート ディレクトリには何千ものファイルが存在します。これらのファイルを特定し、「マイ ドライブ」の下のフォルダに移動したいと考えています。

API を使用してこれらの孤立したファイルの 1 つの親を一覧表示すると、結果は空の配列になります。ファイルが孤立しているかどうかを判断するには、ドメイン内のすべてのファイルを反復処理し、それぞれの親のリストを要求します。リストが空の場合、ファイルが孤立していることがわかります。

しかし、これは恐ろしく遅いです。

ドライブ API を使用して、親を持たないファイルを検索する方法はありますか?

q パラメーターの「親」フィールドは、親リストに ID が含まれていることを指定することしかできないため、これには役に立たないようです。

アップデート:

ドキュメント階層の真のルートにあるアイテムをすばやく見つける方法を見つけようとしています。つまり、「マイ ドライブ」の子ではなく、「マイ ドライブ」の兄弟です。

4

6 に答える 6

6

Java の場合:

List<File> result = new ArrayList<File>();
Files.List request = drive.files().list();
request.setQ("'root'" + " in parents");

FileList files = null;
files = request.execute();

for (com.google.api.services.drive.model.File element : files.getItems()) {
    System.out.println(element.getTitle());
}

ファイルまたはフォルダーがルートにある場合、「ルート」は親フォルダーです。

于 2012-12-26T18:04:14.307 に答える
1

野蛮ですが、シンプルで機能します..

    do {
        try {
            FileList files = request.execute();

            for (File f : files.getItems()) {
                if (f.getParents().size() == 0) {
                        System.out.println("Orphan found:\t" + f.getTitle());

                orphans.add(f);
                }
            }

            request.setPageToken(files.getNextPageToken());
        } catch (IOException e) {
            System.out.println("An error occurred: " + e);
            request.setPageToken(null);
        }
    } while (request.getPageToken() != null
            && request.getPageToken().length() > 0);
于 2014-05-15T12:57:27.167 に答える
0

クエリでこれを使用してみてください。

'root' in parents 
于 2016-10-28T15:26:03.977 に答える