无法更改文件的哑剧类型

时间:2019-12-18 12:25:23

标签: c# google-api google-drive-api httpwebrequest mime-types

我正在尝试将文件in the documentation中所述的哑剧类型更改为"application/vnd.google-apps.folder"。但是,当我发出Web请求时,不会引发任何错误,但mime类型不会改变。

这是我的代码:

public string MimeType
{
    get
    {
        dynamic data = JsonConvert.DeserializeObject(JsonMetadata); //the json of the fileID
        return data.mimeType;
    }
    set
    {
        RandomMethods.CreateRequest( //custom method for creating HttpWebRequest
            "PATCH", //method
            string.Format("https://www.googleapis.com/drive/v3/files/{0}?access_token={1}", FileID, Auth.AccessToken), //url
            "application/json", //content type
            "{ \"mimeType\": \"" + value + "\"}" //body
        ).GetResponse().Dispose();
    }
}

get运行正常,而set未运行。这使我感到困惑,因为我的Name变量可以正常工作,并且只有换了名字才使用完全相同的方法。

这是我使用的CreateRequest方法:

public static HttpWebRequest CreateRequest(string method, string url, string contentType, string body)
{
    var req = WebRequest.Create(url) as HttpWebRequest;
    req.Method = method;
    req.ContentType = contentType;
    byte[] data = Encoding.UTF8.GetBytes(body);
    req.ContentLength = data.Length;
    using (Stream stream = req.GetRequestStream())
        stream.Write(data, 0, data.Length);
    return req;
}

1 个答案:

答案 0 :(得分:0)

我不明白为什么您要尝试将文件的mime更改为文件夹的mime类型( application / vnd.google-apps.folder ),这不可行,您可以做什么如果您想更改Google云端硬盘文件的MIME类型,例如 application / vnd.google-apps.spreadsheet application / vnd.google-apps.document ,使用Files: export端点。

enter image description here

通过将要更改的文档ID和mimeType作为参数传递,您将获得相同的文档作为响应,但使用所需的mimeType。

要进一步了解所有可用的哑剧类型,请选中G Suite documents and corresponding export MIME types