Як визначити, чи є файл на диску
Правда у цього способу є певні недоліки, які значно звужують його практичне застосування:
- Він не буде працювати, якщо на комп'ютері не встановлено Internet Explorer 4.0 або вище, що може бути цілком ймовірно на комп'ютерах з ранніми версіями Windows 95 і Window NT 4.0.
- Функція PathFileExists () не підтримує UNC імена файлів.
Спосіб 8 (CreateFile)
Найбільш очевидний і найгроміздкіший спосіб.
Спосіб 9 (Pure C ++ метод std :: ifstream. Ifstream)
Даний метод полягає в створенні тимчасового об'єкта класу ifstream .Якщо файл з вказаним ім'ям не існує то operator void * () цього класу повертає NULL pointer - інакше повертається покажчик на сам створений об'єкт (this). Це значення перевіряється на NULL pointer - і. Усе.
вірніше майже все =)
В даному коді ifstream це typedef basic_ifstream
Даний метод хороший тим що він 100% портабелен - тобто використовуються тільки можливості самої мови С ++ (в особі його стандартної бібліотеки - яка є його частиною).
Спосіб 10 (.NET)
Можу вас порадувати, в .NET всі наші муки закінчаться. Для з'ясування існування файлу можна буде просто викликати метод FileExists класу File. наприклад:
Спосіб 11 (Script)
Жоден з перерахованих способів не буде працювати з .html документа. Зате з скрипта доступний Scripting.FileSystemObject і нам цього достатньо.
Ми цілком можемо використовувати Scripting.FileSystemObject і в COM-модулі:
Фактично, це дуже збочений спосіб виклику все тієї ж функції access () з способу 1, з тією різницею, що FileSystemObject працює з іменами файлів в UNICODE і під WindowsNT / 2k передає ім'я файлу безпосередньо, а під Windows 9x / Me (і навіть 3.1 з в Internet Explorer!) сам перетворює його в ANSI.