Как закрыть файл в с

Обновлено: 01.07.2024

Доброго времени!

В ряде случаев даже самые "стабильные" и надежные программы могут перестать отзываться на какие-либо нажатия мышки/клавиатуры (т.е. попросту зависнуть).

Для решения вопроса, можно, конечно, перезагрузить ПК/ноутбук — но далеко не всегда это удобно (часть данных в др. ПО будет сброшена и не сохранится. ) .

Логично, что лучше всего закрыть только эту конкретно-зависшую программу. Всем известное сочетание ALT+F4 — далеко не всегда решает проблему, и, собственно, поэтому набросал небольшую заметку с несколькими способами принудительной ликвидации процесса.

Если ПК/ноутбук вообще не реагирует ни на одну из кнопок клавиатуры — то скорее всего зависла не только отдельно-взятая программа, но и в целом система.

Если так, то для перезагрузки/выключения устройства — зажмите кнопку питания (Power) на 4-5 сек. (разумеется, все несохраненные данные будут утеряны) .

Способы закрыть не отвечающую программу

Итак, самый очевидный и простой вариант — просто кликнуть правой кнопкой мышки по значку зависшей программы на панели задач Windows. После, во всплывшем окне достаточно будет выбрать вариант "закрыть окно" .

Закрыть окно

Если зависло полно-экранное приложение и до панели задач вы просто не можете добраться, попробуйте сочетания:

  • WIN , или WIN+TAB , или ALT+TAB , или ALT+Enter — чтобы свернуть окно;
  • ALT+F4 , или ESC , или ALT+Q — для закрытия (выхода) из программы.

ALT+Q / клавиатура

Перечисленные "горячие" сочетания клавиш работают с подавляющем большинством ПО для Windows.

Нажмите сочетание клавиш Ctrl+Shift+Esc (или Ctrl+Alt+Del) для вызова диспетчер задач. Далее во вкладке процессы найдите зависшую программу (процесс), кликните по ней правой кнопкой мыши и в появившемся выберите "Снять задачу" . Через 3-5 сек. программа должна быть закрыта.

Ctrl+Shift+Esc или Ctrl+Alt+Del — открыть диспетчер задач

Ctrl+Shift+Esc или Ctrl+Alt+Del — открыть диспетчер задач

Кстати, если рабочий стол после этого стал отображаться "как-то не так" (или вообще не видно) — перезапустите процесс "Проводник" (или "Explorer" на англ.).

Примечание: также проводник можно перезапустить из командной строки, введя taskkill /F /IM explorer.exe & start explorer и нажав Enter.

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

Как это делается:

Убиваем процесс через командную строку

Убиваем процесс через командную строку

Если вышеприведенные варианты не увенчались успехом, можно прибегнуть к утилите Process Hacker (ссылка на SourceForge). Это бесплатное ПО, которое покажет вам все запущенные процессы, их приоритеты, занимаемую память, нагрузку и пр.

Process Hacker 2 — закрыть дерево процессов

Process Hacker 2 — закрыть дерево процессов

Стоит отметить, что Process Hacker закроет сразу всё дерево процессов, связанных с этой программой (чего не делают многие др. программы. ).

PS

Если у вас часто начала зависать какая-либо программа (еще хуже программы) - обратите внимание на:

  1. версию ПО (нежелательно использовать различные бета-версии). Проверьте, совместима ли версия ПО с вашей ОС (в помощь: какая версия Windows установлена на моем компьютере); (желательно с офиц. сайта); (если он начал "сыпаться" - подвисания будут идти постоянно);
  2. прогоните систему с помощью спец. "одноразовых" антивирусных продуктов;
  3. возможно, вашему приложению не хватает ОЗУ (посмотрите при работе ПО - сколько памяти занято в диспетчере задач).

Кроме этого, рекомендую ознакомиться с тематическими инструкциями (ссылки ниже).

Я пытаюсь понять, как работать с файлами, и я запутался из-за количества различных методов.

Я использовал текущий способ записи в файл. Пока все работает нормально, но мне интересно, нужно ли мне добавлять закрытие файла, когда пользователь выходит из игры? Еще один вопрос: почему файл создается без использования File.Create ()?

Весь код прилагается:

2 ответа

На самом деле, если вы хотите больше контроля, вам нужно использовать FileStream . Это дает вам больше контроля при записи в файлы. Это позволяет держать дескриптор файла открытым и просто записывать данные без какого-либо дополнительного контроля.

Но FileStream также имеет некоторые недостатки.

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

System.IO.File содержит обертки вокруг файловых операций для базовых действий, таких как сохранение файла, чтение файла в строки и т. Д. Это просто абстракция над FileStream.

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

Итак, основной ответ на ваш вопрос: НЕТ , вам не нужно закрывать файл вручную, он сделает это автоматически.

Создает новый файл, записывает указанную строку в файл и затем закрывает файл. Если целевой файл уже существует, он перезаписывается.

Таким образом, этот единственный метод делает все то, что, как вы думали, вы не делали - создание файла и его закрытие.

Если вы хотите закрыть файл вручную, не используйте File.WriteAllText и File.AppendAllText . Используйте другой способ записи в файл, например StreamWriter .

Это то, что я написал бы, если бы мне пришлось использовать StreamWriter .

Просто используйте функцию fclose( ). Заметим, что аргументом ее является in, указатель на файл, а не test, имя файла.

Для программы, более серьезной, чем эта, следовало бы посмотреть, успешно ли закрыт файл. Функция fclose( ) возвращает значение 0, если файл закрыт успешно, и -1 в противном случае.

Закрытие файла

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

Установка размера файла, инициализация файла и разреженные файлы

Установка размера файла, инициализация файла и разреженные файлы Функция SetEndOfFile позволяет переустановить размер файла, используя текущее значение указателя файла для определения его размера. Возможно как расширение, так и усечение файла. В случае расширения файла

11.2.2. Закрытие файлов

Закрытие файла

Закрытие файла fcloseЗакрывает файл, открытый предварительно функцией fopen().Синтаксис:int fclose(int $fp)Возвращает false, если файл закрыть не удалось (например, что-то с ним случилось или же разорвалась связь с удаленным хостом). В противном случае возвращает значение "истина".Всегда

5.12.4 Закрытие каналов

5.12.4 Закрытие каналов При закрытии канала процесс выполняет ту же самую процедуру, что и при закрытии обычного файла, за исключением того, что ядро, прежде чем освободить индекс канала, выполняет специальную обработку. Оно уменьшает количество процессов чтения из канала

10.6 Закрытие соединения

10.6 Закрытие соединения Нормальное завершение соединения выполняется с помощью той же процедуры тройного рукопожатия, что и при открытии соединения. Каждая из сторон может начать закрытие соединения по следующему сценарию:A: "Я закончил работу. Данных для пересылки

12. Закрытие продаж

ПРОСТЫЕ ПРОГРАММЫ ЧТЕНИЯ ФАЙЛА: fopen( ), fclose( ), getc( ) и putc( )

ПРОСТЫЕ ПРОГРАММЫ ЧТЕНИЯ ФАЙЛА: fopen( ), fclose( ), getc( ) и putc( ) Чтобы показать элементарные примеры использования файлов, мы составили небольшую программу, которая читает содержимое файла, названного test, и выводит его на экран. Вы найдете наши пояснения сразу после

Б.1.2. Закрытие файла

Б.1.2. Закрытие файла По окончании работы с файлом его следует закрыть с помощью функции close(). В ряде случаев, например в программе, показанной в листинге Б.1, нет необходимости вызывать данную функцию явно, так как ОС Linux автоматически закрывает все открытые файлы по

Закрытие потоков

Закрытие потоков Функции fclose и fcloseall закрывают поток или потоки. Функция fclose закрывает один заданный поток, fcloseall — все потоки, кроме потоков stdin, stdout, stderr, stdaux, stdprn.Если программа не выполняет закрытия потоков, потоки автоматически закрываются, когда программа завершается

Закрытие файлов

Закрытие файлов Функция close закрывает открытые файлы. Открытые файлы также автоматически закрываются при неаварийном завершении

Закрытие процесса

Закрытие файлов

Закрытие файлов После того, как вы поработали с файлом, его надо закрыть. Класс CFile имеет для этого специальный метод Close:virtual void Close() throw(CFileException);Метод закрывает файл. Если вы создали объект класса CFile и открыли файл, а затем объект удаляется, то связанный с ним файл

Закрытие PGP диска.

Закрытие PGP диска. Закройте все программы и файлы, имеющиеся на диске PGP, т.к. невозможно закрыть диск, если файлы на этом диске до сих пор еще открыты. Теперь зайдите в мой компьютер выделите мышкой диск PGP, нажмите на правую кнопку мышки и выберите команду <unmount> в

Если файл открыт в проводнике, как его удалить? Используемый объект в Windows нельзя переместить, переименовать, изменить или стереть. Для начала его надо закрыть и завершить связанные с ним процессы. Ещё или ещё вариант — отключить сам проводник.

Удаление зависшего в процессах документа

Существует несколько способов удаления файла, если он занят Проводником Windows.

Самое простое

Для начала попробуйте несколько простых способов.

Отключение защиты

  • Перезагрузите компьютер. Тогда «проблемный» файл закроется. Но если связанная с ним программа находится в автозагрузке и запускается автоматически, убрать его не получится.
  • Перезапустите ПК в безопасном режиме.
  • Если объект является частью какой-то утилиты, попробуйте её закрыть или вовсе стереть.
  • Если в гостевой «учётке» запрещено удаление, зайдите в учётную запись, в которой есть права администратора.
  • Проверьте систему антивирусом. Иногда вредоносное программное обеспечение «блокирует» файлы.
  • Или, наоборот, виноват сам антивирус. Он не позволяет ничего стирать из проводника. Временно отключите защиту.

Диспетчер задач

Зависший элемент может отсутствовать на панели задач. Вы не увидите его, даже если он открыт. Но не надо перезагружать компьютер. В Windows 7, 8 и 10 есть служба, в которой можно просмотреть и выборочно отключить запущенные программы. Вот как закрыть файл в проводнике:

«Снять задачу»

  1. Нажмите Ctrl+Shift+Esc или Ctrl+Alt+Delete.
  2. Появится Диспетчер задач.
  3. На вкладке «Приложения» найдите объект, от которого не можете избавиться, или связанную с ним утилиту.
  4. Выделите этот пункт.
  5. Кликните на «Снять задачу».
  6. Попробуйте стереть не удаляющийся элемент.

Программа может быть «спрятана» в фоновых процессах. Это значит, что её не видно, но при этом она работает и используется системой. И как удалить элемент, не перезапуская ПК? Поможет всё тот же Диспетчер задач.

  1. Откройте его и перейдите в раздел «Процессы».
  2. Найдите там процесс приложения. Обычно его название — это имя исполняемого файла.
  3. Щёлкните на него и нажмите «Завершить».
  4. Если не знаете, что это за программа и за что она отвечает, лучше не рискуйте. Вы можете случайно отключить системный процесс.

Управление компьютером

В Windows 7 и других версиях ОС Win есть ещё одна полезная функция. Вот как с её помощью закрыть файл в проводнике:

Пункт «Отключить все»

  1. Перейдите в Пуск — Программы — Администрирование.
  2. Найдите там службу «Управление компьютером» и кликните на неё.
  3. В левом столбце будет список в виде иерархии. Разверните «Общие папки».
  4. Правой кнопкой мыши щёлкните по каталогу «Открытые файлы».
  5. Вам нужен пункт «Отключить все».
  6. Можете зайти в эту директорию и выбрать конкретный объект.

Закрыть проводник

Убирать использующиеся файлы бессмысленно. У вас не получится их стереть, пока они активны. Но необязательно искать их «Диспетчере», чтобы закрыть. Можно отключить сам проводник. А лучше — перезапустить его.

Если что-то сделать неправильно, возникнут ошибки. Это всё же системная служба, а не пользовательская программа. Не стоит её закрывать, если вы планируете ещё поработать на компьютере.

Вот как удалить файл из проводника:

Завершить процесс Explorer.exe

  1. Запустите «Диспетчер задач» (сочетание клавиш Ctrl+Shift+Esc или Ctrl+Alt+Del).
  2. Закладка «Процессы».
  3. Найдите строку «explorer.exe». Не перепутайте с «ixplere» — это браузер Internet Explorer.
  4. «Explorer.exe» — служба, которая отвечает за проводник в Windows 7–10. Чтобы её деактивировать, нажмите на «Завершить».
  5. Если вы отключите этот процесс, не сможете пользоваться файловой системой. Придётся перезагружать компьютер. Чтобы заново запустить службу, перейдите в меню «Файл — Новая задача» в появившемся поле для ввода напишите «explorer.exe».
  6. Спокойно удаляйте то, что хотели.

Можно сделать и по-другому:

  1. Зайдите в «Пуск».
  2. Зажмите клавиши Ctrl+Shift и кликните правой кнопкой мыши по любому свободному месту. Не по логотипу, а именно в той области, где находится список ярлыков.
  3. В контекстном меню выберите «Выход из Проводника».

Чтобы запустить его:

  1. Снова зажмите Ctrl+Shift.
  2. Клик правой кнопкой мыши по «Пуск». На этот раз по самому значку, а не по области «внутри» главного меню.
  3. Строчка «Открыть проводник».

Сторонние программы

Разблокировать объекты можно при помощи специального софта. После этого вы сможете их стереть. С такими утилитами очень просто работать. У них понятный интерфейс и минимальный набор опций. Сами они компактные, весят мало и не требуют ресурсов. Вы быстро разберётесь, как закрыть файл в проводнике Windows 7.

DeadLock

  1. Найдите в интернете, скачайте, установите и запустите.
  2. Перед вами будет окно со строкой меню и пустой таблицей. В ней будет информация о выбранных элементах.
  3. Команда «Файл — Открыть».
  4. Укажите путь к объекту, который хотите стереть. Он появится в рабочей области программы-анлокера.
  5. Кликните по нему правой кнопкой мыши.
  6. Выберите «Разблокировать».
  7. В колонке «Статус» должна быть надпись «Удачно разблокировано».
  8. После этого вы сможете удалить элемент.

DeadLock

Unlocker

Установите эту утилиту, и она появится в контекстном меню. Щёлкните правой кнопкой мыши по любой иконке — там будет пункт «Unlocker». При его выборе откроется диалоговое окно. Там указан путь к файлу и к программе, которая по умолчанию его обрабатывает. Если это музыкальный трек, то в столбце «Обработка» будет медиаплеер. Если это картинка — будет графический редактор или средство просмотра изображений.

Unlocker

Чтобы избавиться от объекта, в выпадающем списке (он слева снизу) выберите «Удалить». Ещё можно переместить, разблокировать или сменить имя. Анлокер бесплатен.

Перед тем как удалить файл, отключите связанные с ним процессы. Если он открыт в какой-то программе, стереть его вы не сможете. Можно закрыть его через Диспетчер задач или воспользоваться «утилитами-анлокерами».

Читайте также: