public FileInfo Invoke(string fileId, string title, string mimeType = null)
        {
            try
            {
                if (String.IsNullOrEmpty(fileId))
                {
                    throw new Exception("Input parameter 'fileId' is null or empty (Cannot rename root directory).");
                }

                if (String.IsNullOrEmpty(title))
                {
                    throw new Exception("Input parameter 'title' is null or empty.");
                }

                using (DriveService driveService = DriveService.Create())
                {
                    FileInfo fileInfo = driveService.GetFile(fileId);

                    if (fileInfo == null)
                    {
                        throw new Exception("File no longer exists.");
                    }

                    var renameStream = new API.DriveService.RenameStream();

                    renameStream.Init(fileInfo, title, mimeType);

                    renameStream.Visible = false;

                    driveService.RenameFile(renameStream);

                    while (!renameStream.Finished)
                    {
                        System.Threading.Thread.Sleep(250);
                    }

                    if (renameStream.Cancelled)
                    {
                        return(null);
                    }
                    if (renameStream.Failed)
                    {
                        throw new LogException("Rename file could not complete - " + renameStream.ExceptionMessage, true, true);
                    }

                    fileInfo = renameStream.FileInfo;

                    return(fileInfo);
                }
            }
            catch (Exception exception)
            {
                Log.Error(exception);

                return(null);
            }
        }
        public FileInfo Invoke(string fileId, string title, string mimeType = null)
        {
            try
              {
            if (String.IsNullOrEmpty(fileId))
            {
              throw new Exception("Input parameter 'fileId' is null or empty (Cannot rename root directory).");
            }

            if (String.IsNullOrEmpty(title))
            {
              throw new Exception("Input parameter 'title' is null or empty.");
            }

            using (DriveService driveService = DriveService.Create())
            {
              FileInfo fileInfo = driveService.GetFile(fileId);

              if (fileInfo == null)
              {
            throw new Exception("File no longer exists.");
              }

              var renameStream = new API.DriveService.RenameStream();

              renameStream.Init(fileInfo, title, mimeType);

              renameStream.Visible = false;

              driveService.RenameFile(renameStream);

              while (!renameStream.Finished)
              {
            System.Threading.Thread.Sleep(250);
              }

              if (renameStream.Cancelled)
              {
            return null;
              }
              if (renameStream.Failed)
              {
            throw new LogException("Rename file could not complete - " + renameStream.ExceptionMessage, true, true);
              }

              fileInfo = renameStream.FileInfo;

              return fileInfo;
            }
              }
              catch (Exception exception)
              {
            Log.Error(exception);

            return null;
              }
        }