Как удалить файл c
Обновлено: 21.11.2024
Я пытаюсь удалить файл в программе c. Предположим, что файл находится в текущем каталоге исходного файла. Я много искал, но не нашел решения. Все предлагают использовать функцию remove().
Вот мой исходный код:
Есть ли способ удалить файл без использования функции remove(). Я хочу кодировать вручную без использования какой-либо другой встроенной функции stl.
Обратите внимание, что 50 — смехотворно короткое имя файла, а использование gets() усугубляет проблемы. Если бы размер был 4096, вам было бы лучше, но все равно уязвимы. Вы не можете безопасно использовать gets(), точка. Также обратите внимание, что STL обычно ассоциируется с C ++, а не с C. И неясно, что вы подразумеваете под «любой другой встроенной функцией STL». Системные вызовы не встроены в обычное значение этого термина.
Я хочу сделать это в операционной системе Windows. Все вы не поняли моих потребностей и требований. Я знаю, что можно удалить файл, используя стандартные библиотечные функции, такие как remove(), unlink(), rm() и т. д. Но я хочу кодировать вручную, не используя встроенную функцию.
Например, мы можем легко найти длину строки, используя встроенную функцию strlen(stringname). Но это можно сделать и с помощью цикла, задающего переменную-счетчик. На самом деле я хочу сделать это вручную, не используя функцию stl. Это просто пример для вашего ясного понимания. Таким образом, я хочу удалить файл с помощью программы C или C++ без использования какой-либо другой встроенной функции, такой как remove(), unlink(), rm().
6 ответов 6
Вы можете заменить remove() на unlink() (для файлов) и rmdir() (для каталогов).
Это предполагает среду POSIX, но это правильно. Обратите внимание, что в стандарте C нет концепции каталогов, и для их удаления не требуется функция remove(). POSIX требует remove() для обработки файлов и каталогов.
Есть ли способ, например, использовать цикл для удаления файла без использования встроенных функций, таких как remove(), в отличие от(). Можно ли прочитать имя файла? Если возможно, то, возможно, это можно сделать, заменив каждый символ имени файла нулевым символом.
Вы можете проверить этот ответ. Вы должны попытаться прочитать книгу по системному программированию, где вы можете узнать о таких случаях, как INTERNAL_SYSCALL .
Вы можете просмотреть функции, упомянутые в сообщениях, такие как unlink() и т. д.
EDIT: на самом деле каким-то образом вы в конечном итоге будете использовать системный вызов на каком-то уровне. Вероятно, вы пытаетесь выполнить операцию удаления файла с другого уровня абстракции. (системный вызов remove() также будет использовать INTERNAL_SYSCALL, который не что иное, как системный вызов).
В этом руководстве вы узнаете и получите код о том, как удалить файл из текущего каталога с помощью программы C. Но прежде чем пройти программу, нам нужно сделать несколько вещей.
Что нужно сделать перед программой
Перед созданием программы на языке C необходимо удалить файл. Давайте сначала создадим файл в каталоге, где сохранен исходный код C. Потому что я сохраняю файл исходного кода в папку с именем cprograms внутри каталога Documents моей компьютерной системы. Поэтому вот снимок папки, содержащей файл с именем codecracker.txt
Вы также можете создать файл в каталоге, в котором вы сохраняете свои программы на C. Потому что после запуска программы мы должны ввести имя удаляемого файла. И в это время я введу имя этого файла, codecracker.txt. Теперь перейдем к программе.
Удалить файл из текущего каталога
Чтобы удалить файл, используйте функцию remove(), которая принимает строку в качестве параметра. Здесь строковым параметром является имя файла (с расширением), который необходимо удалить. Эта функция возвращает 0, если файл удален. Вот программа, которая используется для удаления любого файла, присутствующего в текущем каталоге:
Эта программа была собрана и запущена в Code::Blocks IDE. Вот его пример запуска:
Теперь укажите или введите имя файла, скажем, codecracker.txt, и нажмите клавишу ENTER, чтобы удалить этот файл. Вот пример запуска:
Теперь, если вы хотите увидеть снимок после операции, то вот снимок текущего каталога (снимок папки с программами, созданный ранее):
Напишите программу на C для удаления определенной строки из файла.
Пример решения:
Код C:
Схема:
Редактор кода программирования C:
Есть другой способ решить это решение? Делитесь своим кодом (и комментариями) через Disqus.
Каков уровень сложности этого упражнения?
Проверьте свои навыки программирования с помощью викторины w3resource.
Поделитесь этим учебным пособием/упражнением на: Facebook и Twitter
Программирование на C: советы дня
Это зависит от того, для чего вам нужно это значение. Вы (и все остальные до сих пор) пропустили третий вариант:
Игнорирование вопросов о выборе имени, а затем:
- Если вам нужно передать указатель, вы должны использовать (1).
- Поскольку (2), очевидно, является вариантом, вам не нужно передавать указатели.
- И (1), и (3) имеют символ в таблице символов отладчика, что облегчает отладку. Более вероятно, что (2) не будет иметь символа, и вам будет интересно, что это такое.
- (1) нельзя использовать в качестве измерения для массивов в глобальной области видимости; и (2), и (3) могут.
- (1) нельзя использовать в качестве измерения для статических массивов в области действия функции; и (2), и (3) могут.
- В версии C99 все это можно использовать для локальных массивов. Технически использование (1) подразумевало бы использование VLA (массива переменной длины), хотя размер, на который ссылается 'var', конечно же, был бы фиксированным размером 5.
- (1) нельзя использовать в таких местах, как операторы switch; и (2), и (3) могут.
- (1) нельзя использовать для инициализации статических переменных; и (2), и (3) могут.
- (2) можно изменить код, который вы не хотели изменять, потому что он используется препроцессором; и (1), и (3) не будут иметь подобных неожиданных побочных эффектов.
- Вы можете определить, был ли установлен (2) в препроцессоре; ни (1), ни (3) этого не допускают.
Поэтому в большинстве случаев предпочтение отдается перечислению, а не альтернативам. В противном случае первый и последний пункты списка, скорее всего, будут определяющими факторами, и вам придется хорошенько подумать, если вам нужно удовлетворить оба сразу.
Если бы вы спрашивали о C++, вы бы всегда использовали вариант (1) — static const.
Узнайте, как удалить ненужные/ненужные файлы с диска C в Windows 10/8/7, и вы легко и быстро решите проблему с заполнением диска C.
Автор Bryce / Последнее обновление: 10 марта 2022 г.
Необходимо удалить ненужные файлы с диска C
«Недавно я установил обновление для Windows 10, и на моем диске C почти не осталось неиспользуемого места. Я не кладу файлы на диск С. Что занимает его место? Какие файлы можно удалить, не затрагивая мою ОС? Как удалить ненужные файлы на диске C?"
Как удалить ненужные файлы с диска C в Windows 10/11
Даже если вы не добавляете файлы на диск C, диск C может быть заполнен файлами резервных копий, файлом подкачки, временными файлами, предыдущей установкой Windows и т. д. Возможно, вы установили путь сохранения загруженных файлов из веб-сайт и стороннее программное обеспечение как диск C, не замечая этого.
Предупреждение. Настоятельно рекомендуется заранее создать резервную копию диска C в безопасном месте на случай случайного удаления папок, содержащих нужные файлы.
▶ Решение 1. Удалить/удалить личные файлы и файлы сторонних программ на диске C
Удаление личных файлов (например, фотографий и музыки, сохраненных в папке «Мои документы») и файлов сторонних программ не повредит вашей операционной системе. Подробные шаги по удалению этих файлов или папок перечислены ниже:
✔ Чтобы удалить личные файлы
Шаг 1. Нажмите «Windows» + «E» в Windows 10, чтобы открыть проводник Windows.
Шаг 2. Откройте диск C, найдите папки или файлы, которые вам больше не нужны, щелкните их правой кнопкой мыши и выберите «Удалить».
PS. Если вы хотите сохранить эти файлы или папки на других дисках, например на диске D, вы можете щелкнуть правой кнопкой мыши файлы, которые хотите переместить с C на D, выбрать «Вырезать»; Откройте диск D, щелкните правой кнопкой мыши пустое место и выберите "Вставить".
✔ Удаление приложений и файлов приложений
Некоторые дополнительные приложения, установленные на диске C, целесообразно удалить, выполнив следующие действия:
Шаг 1. Нажмите одновременно «Windows» + «R», введите «control» и нажмите Enter.
Шаг 2. Во всплывающем окне выберите «Программы» > «Программы и компоненты».
Шаг 3. Щелкните правой кнопкой мыши ненужную программу и выберите "Удалить".
Шаг 4. Через некоторое время приложение будет удалено. Возможно, остались какие-то файлы принадлежащие погромщику, найдите и удалите их.
Примечание. После удаления и удаления вы не сможете использовать приложение.Если вы хотите использовать программу в будущем, вы можете перенести файлы программы с диска C на диск D или другой диск. Но вы должны понимать, что некоторые программы работают только тогда, когда они установлены на корневой диск (диск C) жесткого диска.
▶ Решение 2. Запустите очистку диска в Windows 10/11, чтобы освободить место на диске C
Если нежелательных личных или программных файлов нет, решение 1 можно пропустить. И вы можете запустить встроенный в Windows 10/11 инструмент «Очистка диска», чтобы удалить ненужные файлы, которые вам не разрешены в проводнике Windows. Вот подробные шаги:
Шаг 1. В окне «Выполнить» введите «cleanmgr.exe» и нажмите Enter, чтобы запустить очистку диска.
Шаг 2. В окне "Очистка диска" выберите элементы, которые хотите удалить, и нажмите "ОК".
Шаг 3. Чтобы освободить место, нажмите "Очистить системные файлы".
Шаг 4. Выберите файлы, которые хотите удалить, и нажмите «ОК».
Важно: если вам не нужно понижать текущую систему до предыдущей версии, вы можете удалить папку Windows.old. И вам не следует удалять установочные файлы Windows ESD, которые позволяют перезагрузить компьютер. Если вы удалите его, параметр «Сбросить этот компьютер» будет недоступен.
▶ Решение 3. Запустите Storage Sense в Windows 10/11
Если вы используете более позднюю версию ОС Windows 10 1703, вы можете использовать Storage Sense для удаления ненужных файлов с диска C. Давайте посмотрим, как это работает:
Шаг 1. Нажмите «Пуск» и перейдите в «Настройки» > «Система» > «Хранилище».
Шаг 2. Здесь вы можете увидеть Storage Sense. По умолчанию отключено. Переключите кнопку в положение Вкл.
Шаг 3. Будут указаны условия хранения вашего диска C в Windows 10/11.
Шаг 4. Отметьте файлы, которые вам больше не нужны, и нажмите «Удалить файлы».
Примечание. Чтобы настроить контроль памяти, нажмите Изменить способ освобождения места. Вы можете нажать Очистить сейчас, чтобы быстро освободить место.
Что делать, если на диске C по-прежнему недостаточно места?
Теперь вы поняли, как удалить ненужные файлы с диска C в Windows 10/11. Если освободившегося места после удаления ненужных файлов недостаточно, можно попробовать увеличить емкость диска С, особенно когда на других дисках есть лишнее свободное место на том же жестком диске. Чтобы увеличить диск C, вы можете использовать AOMEI Partition Assistant Professional. Он может выделить свободное пространство из раздела с достаточным пространством для диска C без потери данных и добавить нераспределенное пространство на диск C, независимо от того, находится ли нераспределенное пространство за диском C непрерывно или нет. Посмотрите, как он легко распределяет свободное место на диске C.
✍ Доступна для скачивания демо-версия AOMEI Partition Assistant Professional!
Шаг 1. Установите и запустите средство создания разделов. Щелкните правой кнопкой мыши раздел, в котором много неиспользуемого пространства, и выберите «Выделить свободное пространство (здесь раздел D)».
Шаг 2. Во всплывающем окне введите размер свободного пространства, которое вы хотите выделить из раздела D, и выберите раздел C в качестве целевого раздела.
Шаг 3. Теперь вы можете предварительно просмотреть результат операции перед подтверждением. Нажмите «Применить» и «Продолжить», чтобы выполнить операцию.
Примечание. AOMEI Partition Assistant Professional хорошо работает в Windows 11/10/8.1/8/7, XP и Vista. Чтобы выделить свободное место из одного раздела в другой в Windows Server 2019, 2016, 2012 (R2), 2008, 2003, вы можете использовать AOMEI Partition Assistant Server.
Читайте также:
- Как запустить 32-разрядную программу на 64-разрядной версии Windows 10
- Выход за пределы цветового охвата для печати в фотошопе как убрать
- Поместите информацию об операционной системе в сноску внизу страницы в word
- Microsoft vclibs, что это за программа
- Расширение границ после эффектов, что это такое