Как определить, есть ли файл на диске - Способ 11 (Script)
ОГЛАВЛЕНИЕ
Страница 11 из 11
Способ 11 (Script)
Ни один из перечисленных способов не будет работать из .html документа. Зато из скрипта доступен Scripting.FileSystemObject и нам этого достаточно.
{ var fso = new ActiveXObject("Scripting.FileSystemObject"); return fso.FileExists(fname); } |
Мы вполне можем использовать Scripting.FileSystemObject и в COM-модуле:
{ CComPtr<IFileSystem> pfs; HRESULT hr = pfs.CoCreateInstance(OLESTR("Scripting.FileSystemObject")); if (SUCCEEDED(hr)) { VARIANT_BOOL ret = VARIANT_FALSE; hr = pfs->raw_FileExists(fname, &ret); if (SUCCEEDED(hr)) hr = ret ? S_OK : S_FALSE; } return hr; } |
Фактически, это очень извращенный способ вызова все той же функции access() из способа 1, с той разницей, что FileSystemObject работает с именами файлов в UNICODE и под WindowsNT/2k передает имя файла напрямую, а под Windows 9x/Me (и даже 3.1 с интернет эксплорером!) сам преобразовавает его в ANSI.