Операции с папками

WSH. Примеры. Операции с папками.



Некоторые из приводимых здесь примеров уже присутствую в разделе Объект FileSystemObject. Однако в справочных целях для работы с папками, как мне кажется, пользоваться этой страницей удобнее так как группировка материала имеет сугубо практической характер. Однако в примерах могут не рассматриваться различные параметры объектов.




Проверка наличия папки



function ReportFolderStatus(fldr) { var fso, s = fldr; fso = new ActiveXObject("Scripting.FileSystemObject"); if (fso.FolderExists(fldr)) s += " exists."; else s += " doesn't exist."; return(s); }


Путь к специальным папкам



Возможно получить путь к следующим папкам: AllUsersDesktop, AllUsersStartMenu, AllUsersPrograms, AllUsersStartup, Desktop, Favorites, Fonts, MyDocuments, NetHood, PrintHood, Programs, Recent, SendTo, StartMenu, Startup, Templates.

var f1 = WScript.CreateObject("WScript.Shell"); var f3 = f1.SpecialFolders("AllUsersDesktop"); WScript.Echo(f3);


Создать папку



var fso = new ActiveXObject("Scripting.FileSystemObject"); var a = fso.CreateFolder("c:\\new folder");


Если такой каталог уже существует, произойдёт ошибка.

Удалить папку



function DeleteFolder(folderspec) { var fso; fso = new ActiveXObject("Scripting.FileSystemObject"); fso.DeleteFolder(folderspec); }


Список подпапок (подкаталогов)



function ShowFolderList(folderspec) { var fso, f, fc, s; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.GetFolder(folderspec); fc = new Enumerator(f.SubFolders); s = ""; for (; !fc.atEnd(); fc.moveNext()) { s += fc.item(); s += "\n"; } return(s); }


Если исходный каталог не существует, произойдёт ошибка.

Вывод имен всех подпапок (рекурсивно)



Set FSO = CreateObject("Scripting.FileSystemObject") ShowSubFolders FSO.GetFolder("C:\temp") Sub ShowSubFolders(Folder) For Each Subfolder in Folder.SubFolders Wscript.Echo Subfolder.Name ShowSubFolders Subfolder Next End Sub




Удаление всех пустых подпапок (рекурсивно



Set fso = CreateObject("Scripting.FileSystemObject") startFolder = "D:\temp\" DeleteEmptyDir startFolder Function DeleteEmptyDir(folderName) Dim folder, folderCollection, subFolder Set folder = fso.GetFolder(folderName) Set folderCollection = folder.SubFolders For Each subFolder In folderCollection DeleteEmptyDir subFolder.Path If subFolder.Size = 0 Then subFolder.Delete True Next End Function


Копировать папку



fso = new ActiveXObject("Scripting.FileSystemObject"); fso.CopyFolder ("c:\\mydocuments\\letters\\*", "c:\\tempfolder\\")


Переместить папку



function MoveFldr2Desktop(fldrspec) { var fso; fso = new ActiveXObject("Scripting.FileSystemObject"); fso.MoveFolder(fldrspec, "c:\\windows\\desktop\\"); }


Процесс перемещения прерывается после первой возникшей ошибки. Если перемещаемый каталог уже существует или является файлом, возникнет ошибка.

Получение сведений о папке

Дата создания папки.

function ShowFileInfo(filespec) { var fso, f, s; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.GetFile(filespec); s = "Created: " + f.DateCreated; return(s); }


Дата последнего доступа к папке.

function ShowFileLastAccessed(filespec) { var fso, f, s; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.GetFile(filespec); s = filespec.toUpperCase() + "\n"; s += "Last Accessed: " + f.DateLastAccessed; return(s); }


Дата последней модификации папки.

function ShowFileLastModified(filespec) { var fso, f, s; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.GetFile(filespec); s = filespec.toUpperCase() + "\n"; s += "Last Modified: " + f.DateLastModified; return(s); } function ShowFolderAccessInfo(filespec) { var fso, f, s; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.GetFile(filespec); s = f.Path.toUpperCase() + "\n"; s += "Created: " + f.DateCreated + "\n"; s += "Last Accessed: " + f.DateLastAccessed + "\n"; s += "Last Modified: " + f.DateLastModified return(s); }


Родительский каталог



function ShowParentFolder(filespec) { var fso, f, s; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.GetFile(filespec); s = f.Name + " in " + f.ParentFolder; return(s); }


Список файлов в папке



var fso, f, f1, fc, s; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.GetFolder("c:"); fc = new Enumerator(f.files); s = ""; for (; !fc.atEnd(); fc.moveNext()) { s += fc.item(); s += "\n"; } WScript.Echo(s);


Изменить атрибуты папки



function ToggleArchiveBit(filespec) { var fso, f, r, s; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.GetFile(filespec) if (f.attributes && 32) { f.attributes = f.attributes - 32; s = "Archive bit is cleared."; } else { f.attributes = f.attributes + 32; s = "Archive bit is set."; } return(s); }


Выбор папки через проводник



function fnShellBrowseForFolderJ() { var objShell = new ActiveXObject("shell.application"); var objFolder; objFolder = objShell.BrowseForFolder(0, "Выберите каталог", 0); if (objFolder != null) return (objFolder.Self.Path); else return (""); } WScript.Echo(fnShellBrowseForFolderJ());






Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).






  TopList Rambler Top100 own counter Valid XHTML 1.0 Strict Valid CSS Rambler Top100

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка link О авторе

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка Ссылки О авторе Отправить сообщение Карта сайта Поиск по сайту Главная страница

Copyright © 1999 - 2017  Бронислав Краснер