Как определить, есть ли файл на диске Страница 11. Способ 11 (Script)
|
Страница 11 из 11 Способ 11 (Script) Ни один из перечисленных способов не будет работать из .html документа. Зато из скрипта доступен Scripting.FileSystemObject и нам этого достаточно.
function FileExists (fname)
{ var fso = new ActiveXObject("Scripting.FileSystemObject"); return fso.FileExists(fname); } | Мы вполне можем использовать Scripting.FileSystemObject и в COM-модуле: HRESULT FileExists (LPOLESTR oszFilename)
{ 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. |