Как да се определи дали даден файл на диск

Вярно Този метод има някои недостатъци, които значително намаляват неговото практическо приложение:

  • Той няма да работи, ако не сте инсталирали Internet Explorer 4.0 или по-висока, което може да бъде доста вероятно на компютри, работещи по-стари версии на Windows 95 и Window NT 4.0.
  • PathFileExists () функция не поддържа имена UNC файлове.

Метод 8 (CreateFile)

Най-очевидният и най-тромав метод.

Метод 9 (Pure C ++ метод STD :: ifstream. Ifstream)

Този метод е да се създаде временен обект от клас ifstream Ако файлът с посоченото име не съществува, тогава невалидни оператор * () на този клас се връща нулев указател - в противен случай тя връща указател към създал самия обект (това). Тази стойност се проверяват за нулев указател - и. всички.

или по-скоро почти всички =)

В този код, ifstream е typedef basic_ifstream > Ifstream; Ако използвате старите заглавни файлове (разширение .h) - тогава ifstream са - това не е никакъв typedef - но истинска класа. И всичко ще се оправи - ако не беше за едно нещо - в този случай, дизайнерът с името на файла като параметър, за да създадете файл (ако има такъв), и във всеки случай, проверете за файл съществуване ще даде положителен резултат. Фактът, че е необходимо "старите" ifstream "и го изрично да се уточни, че ние не трябва да създадете файл с добавяне на ЗИ флаг. nocreate във втория параметър на конструктора. И тук е самия код за случая:

Този метод е добър, че той е 100% да бъде портативен - това е, като се използват само възможността на езика C ++ (чрез нейната стандартна библиотека - което е част от него).

Метод 10 (.NET)

Аз ви донесе добри новини, страданието ни ще приключи в .NET. За да се изясни наличието на даден файл можете просто да извикате метода клас файлове FileExists на. Например:

Метод 11 (Script)

Нито един от тези методи няма да работи от документ на .html. Но от Scripting.FileSystemObject скрипт на разположение за нас, че е достатъчно.

Ние може да използваме Scripting.FileSystemObject и COM-модул:

В действителност, това е един много усукана начин да се обадя на всички от един и същи функции достъп () от Метод 1, с тази разлика, че FileSystemObject работи с имена на файлове в UNICODE и по WindowsNT / 2k предава името на файла директно и под Windows 9x / Me (и дори 3.1 с Internet Explorer!) той го превръща в ANSI.