我想知道Google云端硬盘服务帐户中的文件有多长时间了?
我无法找到其默认的到期时间。由于我无法控制帐户,我怎么知道该文件已被删除或无法解决,我是否必须自己从服务帐户中删除这些文件?
答案 0 :(得分:2)
由于您无法控制该帐户,因此我看不到您如何实际删除该帐户所拥有的文件。只要所有者不删除它,文件就会保留在那里。
https://support.google.com/drive/answer/2375102
将文件放入垃圾箱
要从云端硬盘中删除文件,您可以将其放入 在垃圾桶里。您的文件将保留在那里,直到您清空垃圾。
如果您是该文件的所有者,则其他人可以查看该文件 永久删除该文件。 如果您不是所有者,其他人可以看到 即使您清空垃圾箱也要存档。
答案 1 :(得分:1)
用户创建文件的方式相同(没有过期日期)。要了解任何已删除的更改,您可以查看Change Feed至retrieve the changes。
更改:列表
- 列出用户的更改。
检测更改
- 对于需要跟踪文件更改的Google云端硬盘应用,Changes collection提供了一种有效的方法来检测所有文件的更改,包括已与用户共享的文件。该集合通过提供每个文件的当前状态来工作,当且仅当文件自给定时间点以来已更改时。
您可以删除文件使用服务帐户,因为它是文件的所有者。您还可以查看此SO question,了解如何检查文件/文件夹是否已删除。
答案 2 :(得分:1)
这些文件一直存在,直到您自己删除它们为止。 您始终可以从google drive API(我使用V3)获取文件列表,并获取带有ID的文件列表,并删除您想要的任何内容。你还不能通过网络界面来做。
以下是关于如何获取文件列表的c#示例:
public List<Google.Apis.Drive.v3.Data.File> GetFilesList(string SearchQ = null)
{
List<Google.Apis.Drive.v3.Data.File> ListOfFiles = new List<Google.Apis.Drive.v3.Data.File>();
FilesResource.ListRequest listRequest = _CurrentDriveService.Files.List();
listRequest.PageSize = 1000;
if (SearchQ != null)
{
listRequest.Q = SearchQ; //("'PARENT_ID' in parents");
}
listRequest.Fields = "nextPageToken, files(id, name,parents,mimeType,size,capabilities,modifiedTime,webViewLink,webContentLink)";
FileList fileFeedList = listRequest.Execute();
while (fileFeedList != null)
{
foreach (File file in fileFeedList.Files)
{
ListOfFiles.Add(file);
}
if (fileFeedList.NextPageToken == null)
{
break;
}
listRequest.PageToken = fileFeedList.NextPageToken;
fileFeedList = listRequest.Execute();
}
return ListOfFiles;
}
以及如何删除特定文件:
public bool DeleteFileFromDrive(string FileID) // only to be used when you are the owner of the file. Otherwise it will have no effect.
{
try
{
FilesResource.GetRequest gr = new FilesResource.GetRequest(_CurrentDriveService, FileID);
var FileData = gr.Execute();
if (FileData.MimeType == GoogleDriveMimeTypes.GetFolderMimeTypeString())
{
var filesInFolder = GetFilesList("'" + FileID + "' in parents");
if (filesInFolder.Count > 0)
{
// directory is not empty
return false;
}
}
var requestD = _CurrentDriveService.Files.Delete(FileID);
requestD.Execute();
return true;
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine(e.Message);
return false;
}
}
答案 3 :(得分:1)
我想到的是,如果您使用API从服务帐户中删除该文件(并且因为服务帐户是该文件的所有者),它将从访问该文件的用户的所有共享驱动器部分中删除。感谢@ some1,@ MrRebot和@Hadar Ben David帮助我得出这个结论。