Как найти и удалить дубликаты файлов на Google Диске

Как найти и удалить дубликаты файлов на Google Диске

21 февраля 2023 г.

Возможно, вы управляете организацией, в которой файлы создаются автоматически или другими сотрудниками/сотрудниками. Вас беспокоит функция Google, которая разрешает файлы с одинаковыми именами?

Тогда этот блог для вас. Вы получите скрипт для удаления повторяющихся файлов, а также сможете автоматизировать процесс.

Привет, это Нибеш Хадка. ==Я фрилансер, помогающий клиентам с работой, связанной с продуктами Google Workspace и скриптом Google Apps==. Этот блог предназначен как для программистов, так и для тех, кто не занимается кодированием, поэтому не обращайте внимания на чрезмерное объяснение.

Введение

Во-первых, вы должны понимать, что речь идет о файлах с одинаковыми именами. Мы не будем проверять содержимое файлов в скрипте. Итак, напишем скрипт:

  1. Это будет нацелено на папку.
  2. Проверьте содержимое папки.
  3. Сравните имена и размеры файлов друг с другом.
  4. Если оба совпадают, считайте их дубликатом файла.
  5. Удалите повторяющиеся файлы, если они существуют.
  6. Создайте триггер для автоматизации этой задачи.

Скрипт приложений

Давайте сначала перейдем на главную страницу вашего проекта сценария и создадим новый сценарий. Добавьте туда эти коды после очистки файла code.gs.

// Add id of the folder to check for duplicate
const FOLDER_ID = "";

/**
 * Function looks for duplicate file names in designated folder and removes them.
 * @param {String} fileName
 */
function removeDuplicateFile() {
  let folder = DriveApp.getFolderById(FOLDER_ID);

  let files = folder.getFiles();

  let fileList = [];

  // if no file is found return null
  if (!files.hasNext()) {
    return;
  }

  // else
  while (files.hasNext()) {
    let file = files.next(),
      name = file.getName(),
      size = file.getSize();

    // checking this way always leaves first file not deleted
    if (isDuplicateFile(fileList, name, size)) {
      file.setTrashed(true);
    } else {
      fileList.push([name, size]);
    }
  }
}

/**
 * Function is helper function of removeDuplicateFile function.
 * It checks if theres already a file in the given lst with same name and size and returns true or false
 * @param {List} lst
 * @param {String} name
 * @param {Number} size
 * @returns {Boolean}
 */
function isDuplicateFile(lst, name, size) {
  for (let i = 0; i < lst.length; i++) {
    if (lst[i][0] === name && lst[i][1] === size) return true;
  }
  return false;
}

Вы можете найти идентификатор своей папки по URL-адресу, когда вы находитесь в своей папке на диске Google, как показано на изображении ниже.

Get Folder ID

:::информация Для тех, кто не умеет кодировать: вы можете увидеть вторую строку в коде→ const FOLDER_ID = "". Вы должны добавить идентификатор своей папки отсюда в кавычки.

:::

Настроить триггер

Теперь вы можете настроить триггер на основе времени для автоматизации этой задачи.

Create Trigger

Теперь выполните действия, указанные на изображении выше.

  1. В сценарии на левой панели нажмите кнопку часов.
  2. Не забудьте добавить функцию removeDuplicateFile на шаге 2.
  3. Выберите событие, связанное со временем, на третьем шаге.
  4. На четвертом шаге вы, конечно, можете выбрать почасовой, еженедельный, ежемесячный и другие параметры, чтобы указать, когда запускать триггер.
  5. Выберите время, которое будет отображаться по-разному в зависимости от вашего выбора на 4-м шаге.
  6. Нажмите Сохранить и готово.

:::предупреждение Предупреждение. Этот скрипт не учитывает ограничение скрипта Google Apps для триггеров и запуска скрипта. время. Таким образом, этот скрипт, вероятно, не будет работать для очень больших и старых папок с большим количеством файлов.

:::

Ссылка

На основе этот ответ StackOverflow.

Спасибо за уделенное время

:::подсказка Я делаю надстройки Google, а также могу написать для вас скрипты Google Apps. Если вам нужны мои услуги, дайте мне знать .

:::


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE