@12rbah

Как правильно удалить папку после разархивации?

Программа разархивирует архив в директорию с именем "arch_Path" в той же директории, потом происходит ряд действий с файлами, после чего нужно удалить директорию, но иногда бывает так, что директорию невозможно удалить из-за того что она "используется" или файл используется хотя программа с ней(ним) больше не работает, как сделать так чтобы эта директория всегда удалялась?

пример кода если нужен
spoiler

"github.com/mholt/archiver"
...
archPath := filepath.Join(filepath.Dir(pathToArch), "arch_Path")
archiver.Unarchive(pathToArch, arch_Path)
...
	defer func() {
		err := os.RemoveAll(tempPath)
		if err != nil {
			log.Println(err)
		}
	}()

  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
1) Узнать какая программа блокирует ваши файлы (unlocker-ом например)
2.1) Если это написанная вами программа, то найти места, где не закрываются операции чтения/записи
2.2) Если это чужая программа, то попробовать её закрыть через taskkill (либо говорить пользователю, чтобы он сам закрывал)
2.3) Если это ваша программа и вы пытаетесь её-же удалить, то это делается так:
https://www.codeproject.com/Articles/31454/How-To-...
3) Можно распаковывать в папку Temp и забить на удаление :)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы