Как проверить что файл пустой c
Перейти к содержимому

Как проверить что файл пустой c

  • автор:

Проверка на пустой файл в C ++

Есть ли простой способ проверить, является ли файл пустым. Например, если вы передаете файл функции, и вы понимаете его пустым, то сразу же закрываете его? Спасибо. Изменить, я пробовал использовать метод fseek, но я получаю сообщение об ошибке «Не могу преобразовать ifstream в FILE *». Мой параметр функции

myFunction(ifstream &inFile) 

Crystal 06 март 2010, в 02:31
Поделиться

Жаль, что вы не можете легко получить дескриптор файла от fstream . Вы можете легко проверить наличие пустого файла с помощью fstat в Unix. :-П

Chris Jester-Young 06 март 2010, в 01:43
Этот вопрос (сделан 9 лет назад) не является дубликатом.
Ronald Chiesse 04 май 2019, в 01:34
Поделиться:

7 ответов

Лучший ответ

Возможно, что-то похожее на:

bool is_empty(std::ifstream& pFile)

Короткий и сладкий.

С учетом вашей ошибки другие ответы используют доступ к файлам в стиле C, где вы получаете FILE* с определенными функциями.

Напротив, мы с вами работаем с потоками С++ и поэтому не можем использовать эти функции. Вышеприведенный код работает простым способом: peek() заглянет в поток и вернет, не удаляя, следующий символ. Если он достигнет конца файла, он возвращает eof() . Ergo, мы просто peek() в потоке и видим, если он eof() , так как пустому файлу нечего заглядывать.

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

std::ifstream file("filename"); if (!file) < // file is not open >if (is_empty(file)) < // file is empty >// file is open and not empty 

Как проверить, пуст ли файл c

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

Проверить, является ли файл пустым или нет

Программисты могут столкнуться с ситуациями, когда им необходимо проверить, есть ли в файле данные или файл пуст, прежде чем выполнять какие-либо операции с файлами. Пустой файл не содержит никаких данных и имеет нулевой размер. Чтобы проверить, пустой файл или нет, вы должны проверить, существует ли ваш файл. Если файл не существует, будет возвращено «FileNotFoundError».

Мы узнаем четыре способа проверить, пуст файл или нет.

  1. функция os.stat()
  2. функция os.path.getsize()
  3. Прочитав первый символ
  4. Использование модуля регулярных выражений

Пример: проверить, существует файл или нет

Этот метод использует os.path.exists() из модуля os в Python для проверки существования файла. Он принимает путь к файлу в качестве аргумента. Он возвращает True, если файл существует, иначе возвращает False.

Пример: проверьте, пуст ли файл, используя функцию os.stat()

Модуль os предоставляет функцию os.stat().st_size для проверки того, является ли файл пустым или нет. Он принимает путь к файлу в качестве аргумента. Он проверит размер файла. Если размер файла равен 0, файл будет распечатан как пустой. Если ваш файл содержит пустые пробелы или новые строки, он напечатает этот файл как не пустой.

Пример: если файл не существует

Если вы хотите проверить размер файла и файл не существует, будет возвращено «FileNotFoundError». Посмотрите на фрагмент кода ниже, чтобы увидеть ошибку.

FileNotFoundError: [WinError 2] Система не может найти указанный файл: ‘textfile.txt’

Проверить, является ли файл пустым, используя функцию os.path.getsize()

Модуль os предоставляет другую функцию os.path.getsize() для проверки, является ли файл пустым или нет. Он принимает путь к файлу в качестве аргумента. Он проверит размер файла. Если размер файла равен 0, файл будет распечатан как пустой. Если ваш файл содержит пустые пробелы или новые строки, он напечатает этот файл как не пустой.

Пример: если файл не существует

Если вы хотите проверить размер файла и файл не существует, также будет возвращено «FileNotFoundError». Посмотрите на фрагмент кода ниже, чтобы увидеть ошибку.

FileNotFoundError: [WinError 2] Система не может найти указанный файл: ‘textfile.txt’

Проверить, является ли файл пустым, прочитав его первый символ

Этот метод открывает файл в режиме чтения и считывает только первый символ данного файла с помощью функции read(). 1 передается в качестве аргумента для обозначения первого символа. Он также может принимать пустые пробелы или символы новой строки в качестве первого символа. Если он не может прочитать первый символ файла, он печатает файл как пустой.

Пример: если файл не существует

Если вы хотите проверить размер файла и файл не существует, также будет возвращено «FileNotFoundError». Посмотрите на фрагмент кода ниже, чтобы увидеть ошибку.

Я запустил код, и он работает. Я получаю сообщение, когда в нем нет содержимого, но когда файл НЕ пуст, я получаю то же сообщение об ошибке «Нет информации в данных».. почему так, что я делаю неправильно? ?

и данные в файле не читаются..

Ну, поскольку указатель файла находится в конце файла, как вы собираетесь читать какие-либо данные?

Возможно, вам нужно переместить указатель файла в начало файла?

Значит, мне нужно изменить строку 35 с помощью SEEK_SET вот так?

Ну, я изменил это и снова запустил программу. сначала это говорит

Нет информации в базе данных

и сразу после нее перечислите мне данные..

Значит, мне нужно изменить строку 35 с помощью SEEK_SET вот так?

Нет. В строке 35 вы хотите искать до конца, поэтому Вы можете получить размер. Вам нужно добавить fseek(file, 0, SEEK_SET); после этого. Я бы добавил его перед строкой 57.

Почему у вас есть цикл while в строке 38?

Вам нужно закрыть файл, когда его размер равен нулю.

Также есть stat() . Это возвращает информацию о файле, включая размер, из метаданных файла. Файл открывать не нужно.

Также обратите внимание, что в Windows _stat и _stat64 (существует много вариантов, это только два, которые я тестировал) имеют проблемы с папкой System Volume Information на любом диске. _stat и _stat64 вернут -1, указывая на ошибку, а для errno будет установлено значение 2, что равно ENOENT и должно означать «нет такого файла или каталога». Я сообщил о проблеме в Microsoft, ответа пока нет.

touch /tmp/f1 echo «данные» >/tmp/f2 ls -l /tmp/f [ -s /tmp/f1 ] echo $? Ненулевой вывод указывает на то, что файл пуст. [ -s /tmp/f2 ] эхо $? Нулевой вывод означает, что файл не пуст.

Как проверить, пуст ли файл?

  1. пакет ком. приложение;
  2. ио. файл;
  3. открытый класс CheckEmptyFile
  4. if (file.length() == 0)
  5. Система. вне. println(«Файл пуст.»);
  6. еще.
  7. Система. вне. println(«Файл не пуст.»);
  8. >

Как проверить, записывается ли файл в Unix?

Вы можете использовать lsof | grep /абсолютный/путь/к/файлу. txt, чтобы узнать, открыт ли файл. Если файл открыт, эта команда вернет статус 0, иначе вернет 256 (1).

Как проверить, существует ли файл в Linux?

Чтобы проверить, существует ли файл в Bash, используя более короткие формы, укажите параметр «-f» в скобках и добавьте команду, которую вы хотите запустить в случае успеха. [[ -f ]] && echo «Этот файл существует!» [ -f ] && echo «Этот файл существует!»

Как найти непустые файлы в Linux?

Найти все (не)пустые файлы в каталоге

То же самое для непустых файлов. По умолчанию команда find исключает символические файлы. Используйте параметр -L, чтобы включить их. Выражение -maxdepth 1 указывает, что максимальная глубина, до которой будет выполняться поиск, равна только единице.

Как проверить, пуст ли объект Json?

вернуть Object.keys(obj).length === 0;

Мы также можем проверить это с помощью Object. значения и Объект. записи . Обычно это самый простой способ определить, является ли объект пустым.

Как проверить, пуст ли файл C++?

Функция tellg() возвращает позицию чтения (получения) файла, и мы представили файл с позицией чтения (получения) в конце, используя std::ios::ate . Следовательно, если tellg() возвращает 0, он должен быть пустым.

Как узнать, используется ли файл Python?

  1. путь. exists(path) – возвращает true, если путь является файлом, каталогом или действительной символической ссылкой.
  2. путь. isfile(path) — возвращает true, если путь является обычным файлом или символической ссылкой на файл.
  3. путь. isdir(path) — возвращает true, если путь является каталогом или символической ссылкой на каталог.

Как узнать, используется ли файл?

  1. Откройте обозреватель процессов. Запуск от имени администратора.
  2. Введите сочетание клавиш Ctrl+F. …
  3. Откроется диалоговое окно поиска.
  4. Введите имя заблокированного файла или другого интересующего файла. …
  5. Нажмите кнопку «Поиск».
  6. Будет создан список.

Как проверить, закрыт ли файл в Python?

Чтобы узнать статус закрытия файла, т. е. проверить, открыт файл или закрыт, мы используем файл_объект. близко. Возвращает «Истина», если файл открыт, в противном случае возвращает «Ложь».

Какая команда используется для изменения разрешений?

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

Как запустить сценарий оболочки?

  1. Откройте терминал. Перейдите в каталог, в котором вы хотите создать скрипт.
  2. Создайте файл с расширением . расширение ш.
  3. Запишите сценарий в файл с помощью редактора.
  4. Сделайте скрипт исполняемым с помощью команды chmod +x .
  5. Запустите скрипт, используя ./ .

Как проверить, существует файл или нет в Java?

  1. Пример. импортировать java.io.File; общедоступный класс Main >
  2. Результат. Приведенный выше пример кода даст следующий результат (если файл «java. …
  3. Пример. …
  4. Вывод.

Что такое пустой файл?

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

Как найти нулевой байт в Unix?

  1. Значок ./ означает начать поиск в текущем каталоге. Если вы хотите найти файлы из другого каталога, замените ./ на путь к нужному каталогу. …
  2. Флаг -type f указывает, что нужно искать только файлы.
  3. Флаги -size 0 и -empty указывают на поиск файлов нулевой длины.

Какие параметры теста возвращают значение true, если строка имеет длину 0 байт?

Какой тестовый параметр возвращает значение true, если строка имеет длину 0 байт? … Параметр -s проверяет, что файл существует и имеет размер больше 0. Теста -0 нет.

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

Функция fopen() для проверки существования файла в C

Здесь имя файла demo.txt . Программа C и файл demo.txt находятся в одном каталоге. Таким образом, файл существует.

Если расположение программы C и расположение файла отличаются, мы должны указать полный путь к файлу.

Мы можем создать пользовательскую функцию и проверить, существует ли файл или нет. Ниже приведена программа с пользовательской функцией.

Программа напечатает, что файл существует, если файл demo.txt и программа C находятся в одном и том же месте. Если программа C и имя файла находятся в разных местах, мы должны указать полный путь к файлу.

Функция stat() для проверки существования файла в C

Мы читаем атрибуты файла с помощью функции stat() вместо чтения данных из файла. Эта функция вернет 0, если операция выполнена успешно; в противном случае он вернет -1 , если файл не существует.

Программа напечатает, что файл существует, если файл demo.txt и программа C находятся в одном и том же месте. Если программа C и имя файла находятся в разных местах, мы должны указать полный путь к файлу.

Функция access() для проверки существования файла в C

Еще один способ проверить, существует ли файл, — использовать функцию access(). Заголовочный файл unistd.h имеет доступ к функции для проверки существования файла.

Мы можем использовать R_OK для разрешения на чтение, W_OK для разрешения на запись и X_OK для разрешения на выполнение. Мы можем использовать их вместе как R_OK|W_OK для разрешения на чтение и запись.

Здесь C:\TEMPdemo.txt — это расположение файла. Если файл существует, он печатает файл найден; в противном случае он печатает файл не найден. Расположение программы и файла demo.txt совпадает. В противном случае мы должны указать местоположение файла. Комбинация функций stat() и access() — хороший выбор для операционной системы Linux.

Другой способ использования функции access() показан ниже:

Статьи DelftStack написаны такими же фанатами программного обеспечения, как и вы. Если вы также хотите внести свой вклад в DelftStack, написав платные статьи, вы можете посетить страницу «Написать для нас».

Статья по теме — файл C

сообщить об этом объявлении

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

  • Если батарея на материнской плате разрядится, что произойдет с компьютером
  • Файл Bpn, чем открыть
  • Как отключить сетевую карту в биосе
  • Как загрузить видео с YouTube из Google Chrome
  • Что такое Autodesk storm andsanity analysis

Проверка на пустоту файла С++

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

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Проверка файла на пустоту
Здравствуйте, нужно сделать проверку на пустоту, если файл пуст то идет одна ветка,если не пуст.

Проверка файла на пустоту
Как проверить файл на наличие в нем текста?

Проверка файла на пустоту
void Add_New_User() < FILE *Fptr = fopen("New_User.txt", "r"); if ((Fptr =.

88 / 88 / 80
Регистрация: 25.08.2013
Сообщений: 337

Лучший ответ

Сообщение было отмечено KaTRiNA13 как решение

Решение

1 2 3
fstream file("file.txt"); if (!file.is_open()) cout  "Not open\n"; // если не открылся else if (file.peek() == EOF) cout  "Fail empty\n"; // если первый символ конец файла

.peek() смотрит, но не извлекает.
Регистрация: 02.03.2016
Сообщений: 37

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#include #include using namespace std; int main() { const char filename[] = "1.txt"; FILE* f = fopen(filename, "rb"); if(!f) { cout  "File is not exists"  endl; return 0; } char a; size_t readed = fread(&a, 1, 1, f); if(readed) cout  "File contains data"  endl; else cout  "File NOT contains data"  endl; return 0; }

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

проверка на пустоту файла.
суть в чем.у меня если в файле записана хоть одна цифра программа работает.если же файл пустой т.е.

Проверка файла на пустоту
Помогите, пожалуйста. Как правильно проверить файл на пустоту (т.е. в файле нет абсолютно ничего).

Проверка файла на пустоту
как проверить пуст ли файл с которого я считываю данные.

Проверка файла на пустоту
очень важный для меня вопрос. как проверить файл на пустоту. мне нужно будет если файл выполнять.

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

Проверка текстового файла на пустоту
В случае, когда файл пуст, программа всё равно не считает его пустым. Почему это происходит? Как.

Как проверить, пусто ли содержимое файла?

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

class LastUsed < private static string dir = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Folder\"; private static string file = dir + @"\Settings.txt"; private string text; public void CheckFileStatus() < if (!Directory.Exists(dir)) < DirectoryInfo directory = Directory.CreateDirectory(dir); >if (!File.Exists(file)) < using (FileStream fileStream = File.Create(file)) < >> > private void SetFileText(string writeText) < using (StreamWriter streamWriter = new StreamWriter(file)) < streamWriter.Write(writeText); >> private string GetFileText() < string readText; using (StreamReader streamReader = File.OpenText(file)) < readText = streamReader.ReadLine(); >return readText; > public string Text < set < text = value; SetFileText(text); >get < return GetFileText(); >> 

Как мы видим, я могу читать/писать файл с помощью свойств. Поэтому я попытался проверить свойство Text для нулевого значения, но он не работает. Как мне это сделать?

HelpNeeder 10 янв. 2012, в 04:48
Поделиться
Как насчет проверки, если файл пуст (то есть размер файла равен 0)? Это не ракетостроение.
M.Babcock 10 янв. 2012, в 03:36
@ M.Babcock, я не думаю об этом. Но это кажется хорошим решением.
HelpNeeder 10 янв. 2012, в 03:38

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

M.Babcock 10 янв. 2012, в 03:40

@ М.Бабкок, расстраиваться нет смысла. Я решил использовать свои свойства, чтобы проверить, пусто ли содержимое.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *