gpt4 book ai didi

戈朗 :exclude trash files from google drive

转载 作者:IT王子 更新时间:2023-10-29 01:44:46 26 4
gpt4 key购买 nike

type listAllFilesArgs struct {
query string
fields []googleapi.Field
sortOrder string
maxFiles int64
}
type Field string

func (self *Drive) listAllFiles(args listAllFilesArgs) ([]*drive.File, error) {
var files []*drive.File
var pageSize int64
if args.maxFiles > 0 && args.maxFiles < 1000 {
pageSize = args.maxFiles
} else {
pageSize = 1000
}
controlledStop := fmt.Errorf("Controlled stop")
err := self.service.Files.List().Q(args.query).Fields(args.fields...).OrderBy(args.sortOrder).PageSize(pageSize).Pages(context.TODO(), func(fl *drive.FileList) error {
files = append(files, fl.Files...)

// Stop when we have all the files we need
if args.maxFiles > 0 && len(files) >= int(args.maxFiles) {
return controlledStop
}

return nil
})

if err != nil && err != controlledStop {
return nil, err
}

if args.maxFiles > 0 {
n := min(len(files), int(args.maxFiles))
return files[:n], nil
}

return files, nil
}

func (self *Drive) newPathfinder() *remotePathfinder {
return &remotePathfinder{
service: self.service.Files,
files: make(map[string]*drive.File),
}
}

我正在使用 go 进行我的 googledrive api 开发,下面是版本使用的详细信息,go 版本 go1.8.1 windows/amd64并进口“google.golang.org/api/drive/v3” “google.golang.org/api/googleapi”发展

err = gDrive.List(listArgs)
if err != nil {
fmt.Errorf("Failed to list files: %s", err)
}

func (self *Drive) List(args ListFilesArgs) (err error) {
listArgs := listAllFilesArgs{
query: args.Query,
fields: []googleapi.Field{"nextPageToken", "files(id,name,md5Checksum,mimeType,size,createdTime,parents)"},
sortOrder: args.SortOrder,
maxFiles: args.MaxFiles,
}
files, err := self.listAllFiles(listArgs)
if err != nil {
return fmt.Errorf("Failed to list files: %s /n", err)
}

pathfinder := self.newPathfinder()

if args.AbsPath {
// Replace name with absolute path
for _, f := range files {
f.Name, err = pathfinder.absPath(f)
if err != nil {
return err
}
}
}

PrintFileList(PrintFileListArgs{
Out: args.Out,
Files: files,
NameWidth: int(args.NameWidth),
SkipHeader: args.SkipHeader,
SizeInBytes: args.SizeInBytes,
})

return
}

用于 Golang 列表文件(包括垃圾)的 google drive api。如何排除垃圾文件,

最佳答案

要过滤您要从谷歌驱动器检索的文件,您需要指定搜索参数,如 "Search for Files" 中所述。 .将其作为 Q(...) 的参数传递,例如

Suppose you want to search for pdf file with a name containing myfile and not in trashed.

然后代码看起来像

err := self.service.Files.List().
Q("mimeType='application/pdf' and name contains 'myfile' and trashed=false")

关于戈朗 :exclude trash files from google drive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43886361/

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