Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/25: Рейтинг темы: голосов - 25, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 31.07.2012
Сообщений: 71

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

16.11.2012, 05:49. Показов 4799. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Задача: проверить существование двух файлов и не пустые ли они.
проверить существование одного файла:
http://www.rsdn.ru/article/qna/baseserv/fileex.xml
все эти способы работают для одного файла. а проверить существование второго файла не получается. 1 файл "найден", а 2 файл "не найден", хотя и существует. почему? пробовал для каждого файла разные методы, все равно результат 0.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.11.2012, 05:49
Ответы с готовыми решениями:

Проверка наличия трех текстовых файлов на диске и объединения их в один файл
Помогите плз с заданием. Создать два пакетных файла, реализующих следующие задачи: 1. Проверка наличия трех текстовых файлов на диске и...

Проверка наличия трёх текстовых файлов на диске и объединение их в один файл в случае существования каждого
Проверка наличия трех текстовых файлов на диске и объединения их в один файл. Как сие воплотить? :sorry:

Как в макросе (Excel)определить есть ли нужный каталог на диске?
Народ!!! Подскажите, как в макросе (Excel)определить есть ли нужный каталог на диске. И,если его нет, то создать его.

3
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
16.11.2012, 08:59
Вот так не работает?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <io.h>
#include <iostream>
 
bool FileExists(const char *fname)
{
    return access(fname, 0) != -1;
}
 
int main()
{
    if (FileExists("C:\\Users\\1.txt"))
    std::cout << "Yes" << std::endl;
    else std::cout << "No" << std::endl;
 
    if (FileExists("C:\\Users\\2.txt"))
    std::cout << "Yes" << std::endl;
    else std::cout << "No" << std::endl;
 
 
    return 0;
}
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.11.2012, 11:47
C++
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
27
28
29
30
31
32
33
34
#include <boost/filesystem.hpp>
#include <iostream>
#include <string>
 
int main()
{
   auto files = {"tst_dir/file1", "tst_dir/file2"};
   for (const auto& f : files)
   {
      const auto path = boost::filesystem::path(f);
      if (boost::filesystem::exists(path))
      {
         if (boost::filesystem::is_regular_file(path))
         {
            if (boost::filesystem::file_size(path) != 0)
            {
               std::cout << "File " << path.generic_string() << " exists" << std::endl;
            }
            else
            {
               std::cout << "File " << path.generic_string() << " exists, but is empty" << std::endl;
            }
         }
         else
         {
            std::cout << path.generic_string() << " is not regular file" << std::endl;
         }
      }
      else
      {
         std::cout << path.generic_string() << " not exists" << std::endl;
      }
   }
}
Bash
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
27
28
29
30
forever@pterois:~/My_pro1/cpp_pro/tst_dir$ ls -l -h
итого 0
-rw-r--r-- 1 forever user 0 нояб. 16 11:43 file1
-rw-r--r-- 1 forever user 0 нояб. 16 11:43 file2
forever@pterois:~/My_pro1/cpp_pro$ ./new 
File tst_dir/file1 exists, but is empty
File tst_dir/file2 exists, but is empty
 
forever@pterois:~/My_pro1/cpp_pro/tst_dir$ ls -l -h
итого 4,0K
-rw-r--r-- 1 forever user 2 нояб. 16 11:46 file1
-rw-r--r-- 1 forever user 0 нояб. 16 11:43 file2
forever@pterois:~/My_pro1/cpp_pro$ ./new 
File tst_dir/file1 exists
File tst_dir/file2 exists, but is empty
 
forever@pterois:~/My_pro1/cpp_pro/tst_dir$ ls -l -h
итого 0
-rw-r--r-- 1 forever user 0 нояб. 16 11:43 file2
forever@pterois:~/My_pro1/cpp_pro$ ./new 
tst_dir/file1 not exists
File tst_dir/file2 exists, but is empty
 
forever@pterois:~/My_pro1/cpp_pro/tst_dir$ ls -l -h
итого 4,0K
drwxr-xr-x 2 forever user 4,0K нояб. 16 11:47 file1
-rw-r--r-- 1 forever user    0 нояб. 16 11:43 file2
forever@pterois:~/My_pro1/cpp_pro$ ./new 
tst_dir/file1 is not regular file
File tst_dir/file2 exists, but is empty
1
2 / 2 / 0
Регистрация: 31.07.2012
Сообщений: 71
19.11.2012, 04:39  [ТС]
почему то оба метода вызвали ошибку. я сделал примитивно:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
DWORD CTwoAppDlg::FileExists(CString filename)
{
DWORD sz = 0;
 
WIN32_FIND_DATA wfd;
 
HANDLE searchHandle = ::FindFirstFile((LPCTSTR)"D:\\*.txt", &wfd);
 
if(searchHandle != INVALID_HANDLE_VALUE)
    {
        while(::FindNextFile(searchHandle, &wfd) != 0)
        {
            if (filename.Compare(wfd.cFileName) == 0)
            sz = wfd.nFileSizeLow;//razmer faila v baitah
        }
    
        FindClose(searchHandle);
    }
 
return sz;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.11.2012, 04:39
Помогаю со студенческими работами здесь

Проверка системных файлов на диске С
зачем при запуска выйдет на екран вот такой, Checking file system on C: The type of the file system is NTFS. a disk check has...

Проверка целостности (сrc сумм) файлов на диске
В общем задание следующее: требуется проверить целостность файла(ов), которые записаны на диске. Как я понял нужно: 1 вытащить crc...

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

В заданном каталоге определить, какие имена файлов есть жесткими ссылками на тот же файл
В заданном каталоге определить, какие имена файлов есть жесткими ссылками на тот же файл. Заранеей спасибо)

Проверить, есть ли файл на диске
Привет. Прежде чем вызвать оператор KILL &quot;file&quot; требуется убедиться, что данный &quot;file&quot; на диске есть. Есть ли для этой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru