Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
4 / 4 / 0
Регистрация: 12.12.2011
Сообщений: 32
1

Вывести в текстовый файл значения размеров и расширений всех файлов в указанной папке

16.01.2013, 13:48. Показов 2581. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно вывести в текстовый файл значения размеров и расширений всех файлов в указанной папке (можно с именами)

формат файла таков, чтобы можно было его запустить двойным кликом по нему

Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2013, 13:48
Ответы с готовыми решениями:

Вывести список пяти самых часто встречающихся расширений в указанной папке
Очень нужна помощь вот по какому вопросу: как найти и вывести список пяти самых часто...

Количество всех файлов в указанной папке
Скрипт, который находит количество всех файлов в указанной папке. Вывод осуществляется на экран...

Нахождение и вывод на экран количества всех файлов в указанной папке
Добрый день,форумчане. Нужна помощь с заданием. Требуется написать скрипт(на языке...

Вывод в файл информации о количестве файлов с расширением .bat в папке, указанной пользователем
Добрый вечер. Сижу ломаю голову как мне выполнить это задание: Вывод в файл...

14
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
16.01.2013, 15:34 2
сохраните код как файл имя_файла.js
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
var fpt = 'c:\\windows',                                      // путь к папке
    fso = new ActiveXObject ('Scripting.FileSystemObject'),
    fld = fso.GetFolder (fpt),
    txt = new Array (),
    fil = new Enumerator (fld.files);
for (; !fil.atEnd (); fil.moveNext ())
   txt [txt.length] = fil.item ().Name + '\t' +
                      fil.item ().size + '\t' +
                      fil.item ().type;
var fil = fso.CreateTextFile ('c:\\myfile.txt', true);        // путь к вновь создаваемому файлу
fil.Write (txt.join ('\r\n'));
fil.Close ();
если нужны именно "расширения файлов", то строки #7-9 можете заменить на
Javascript
1
2
   txt [txt.length] = fil.item ().Name.split ('.') [1] + '\t' +
                      fil.item ().size;
0
4 / 4 / 0
Регистрация: 12.12.2011
Сообщений: 32
16.01.2013, 23:39  [ТС] 3
Немного не то...

Вопрос стоит в том, чтобы пользователь мог указать папку..
А еще.. файл с выводом нужно создать в том же месте, где находится исполняемый, а после выполнения скрипта еще и открыть...

вот, я накидал предварительно из разных частей, но вот как из первой функции вернуть путь, я пока не очень додумался и еще не разобрал последние три срочки


Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function fnShellBrowseForFolderJ()  
{
    var objShell;
    try
    {
        objShell = new ActiveXObject("Shell.Application");
    } 
        catch(er) 
    {
        alert(er);
        return;
    }
   
   var ssfCONSTANTS = 17;
   var objFolder;
   objFolder = objShell.BrowseForFolder(0, "Select Result Profile Folder", 0, ssfCONSTANTS);
   fld = fso.GetFolder (fpt),
   if (objFolder != null)
    { 
        return (...?...);  // нужно вернуть переменную, содержащую путь
    }
}
 
var fpt = fnShellBrowseForFolderJ();   // Сюда нужно вставить путь к папке
    frm = ';',                                                 // разделитель
    fso = new ActiveXObject ('Scripting.FileSystemObject'),
    arr = new Array (),
    ind = 0,
    fil = new Enumerator (fld.files);
for (; !fil.atEnd (); fil.moveNext ())
   arr [ind++] = fil.item ().Name + frm + fil.item ().size ;
arr.sort (function (x, y) {return (x.split (frm) [1] - y.split (frm) [1])});
WScript.Echo (arr.join ('\n'));
 
var fil = fso.CreateTextFile ('C:\\myfile.txt', true);        // тут нужен путь, где находится исполняемый файл
fil.Write (arr.join ('\r\n'));
fil.Open ();
Заранее спасибо
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
17.01.2013, 10:24 4
Цитата Сообщение от MaksAndreev Посмотреть сообщение
Немного не то...
Вопрос стоит в том, чтобы пользователь мог указать папку..
А еще.. файл с выводом нужно создать в том же месте, где находится исполняемый, а после выполнения скрипта еще и открыть...
перечитайте ваш самый первый пост
разве там все эти ваши пожелания имеются?
или, полагаете, всякий был должен сразу догадаться - в каком именно ухе у вас чешется?

научитесь изначально правильно ставить задачу (чтобы мне не было мучительно больно за бесцельно потраченное на вас время)
0
4 / 4 / 0
Регистрация: 12.12.2011
Сообщений: 32
17.01.2013, 10:48  [ТС] 5
Цитата Сообщение от kalabuni Посмотреть сообщение
перечитайте ваш самый первый пост
разве там все эти ваши пожелания имеются?
или, полагаете, всякий был должен сразу догадаться - в каком именно ухе у вас чешется?

научитесь изначально правильно ставить задачу (чтобы мне не было мучительно больно за бесцельно потраченное на вас время)
Понял, виноват...
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
17.01.2013, 13:48 6
принято
-------------

1) путь к папке, которую юзер исследовать собирается, он должен прописать текстом в <input>?
или же нужен интерфейс выбора (типа проводника в Windows, где будут только папки и кнопка OK, доступная при выборе какой-то папки)?

2) имя для файла, куда результаты запишутся, должно быть каким-то постоянным (изначально заданным)?
или юзера каждый раз спрашивать надо и он это имя будет вводить в текстовое поле <input>?

3) и, так вы определились - какой вариант вам нужен: "системные описания типов файла" или "расширения"?
0
4 / 4 / 0
Регистрация: 12.12.2011
Сообщений: 32
17.01.2013, 15:20  [ТС] 7
Цитата Сообщение от kalabuni Посмотреть сообщение
принято
-------------

1) путь к папке, которую юзер исследовать собирается, он должен прописать текстом в <input>?
или же нужен интерфейс выбора (типа проводника в Windows, где будут только папки и кнопка OK, доступная при выборе какой-то папки)?

2) имя для файла, куда результаты запишутся, должно быть каким-то постоянным (изначально заданным)?
или юзера каждый раз спрашивать надо и он это имя будет вводить в текстовое поле <input>?

3) и, так вы определились - какой вариант вам нужен: "системные описания типов файла" или "расширения"?
по второму: возможно ли в именем файла записать дату его создания, например, 17-01-2013-15-00.txt ?

нужен вывод такой: размер файла(округление в большую сторону);расширение
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
17.01.2013, 16:24 8
странный вы какой-то...
вместо ответов на мои вопросы вы зачем-то их цитируете
зачем?
а отвечать на мои вопросы кто будет?
-----

для файлов можно вывести Date Created, Date Last Accessed и Date Last Modified

"округление в большую сторону" до чего?
до десятков байт?
до сотен байт?
до килобайт?
0
4 / 4 / 0
Регистрация: 12.12.2011
Сообщений: 32
17.01.2013, 16:56  [ТС] 9
я хотел подчеркнуть нужное. больше так делать не буду

Необходимо окошко выбора папки. В листинге, который я привел выше, это выполняет функция fnShellBrowseForFolderJ(). см приложение

имя подойдет Date Created.

округление до килобайта.
Миниатюры
Вывести в текстовый файл значения размеров и расширений всех файлов в указанной папке  
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
17.01.2013, 17:43 10
прямо анекдот, честное слово: я у вас вынужден вымаливать рассказать мне о том, что вам нужно (не мне нужно, а именно вам!)
----------

1) спрашивал про интерфейс -- ответ от вас с третьего раза получил, слава Б-у
2) спрашивал про имя файла, куда будет записываться информация -- вашего ответа так и нет
3) спрашивал про расширение или системный тип -- вашего ответа так и нет
4) спрашивал про нужную вам дату для файла (создания, последнего изменения, последнего вызова) -- вашего ответа так и нет
5) спрашивал про округление -- ответ сразу получил, урряя!

итого из пяти вопросов ответили вы на два
а для ответов на остальные три вопроса ждём возвращения в этот мир Александра Сергеевича Пушкина?
1
4 / 4 / 0
Регистрация: 12.12.2011
Сообщений: 32
17.01.2013, 18:05  [ТС] 11
мне кажется, вы проглядели мои ответы

2. про имя файла я отвечал в 7 посте. Если в общем, то имя файла должно содержать дату и время создания документа(текстового файла, куда будет записан результат работы скрипта);

3. именно расширение. Ответ также был в 7 посте, в сааааааамом конце;

4. и снова 7 пост! Имя файла: дата создания файла;

Теперь все?

Но... согласен, что вопрос я сформулировал крайне криво. Оттого и длиннющий диалог о непонятках друг друга)

У вас железное терпение
1
4 / 4 / 0
Регистрация: 12.12.2011
Сообщений: 32
23.01.2013, 11:32  [ТС] 12
UP! Очень нужна помощь!
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
19.04.2013, 19:58 13
Лучший ответ Сообщение было отмечено как решение

Решение

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
var po = new Object;
po.File_system_object = new ActiveXObject ('Scripting.FileSystemObject');
po.enumerator         = new Enumerator (po.File_system_object.Drives);
po.save_data          = '';
for (; !po.enumerator.atEnd (); po.enumerator.moveNext ())
   {
   po.temp = po.enumerator.item ();
   if (po.temp.DriveType == 2 && po.temp.IsReady) po.save_data += po.temp;
   }
 
po.Shell_application  = new ActiveXObject ('Shell.Application');
po.selected_directory = po.Shell_application.BrowseForFolder (0, 'Âûáåðèòå êàòàëîã', 529),
po.Directory_path     = (po.selected_directory) ? po.selected_directory.Self.Path : '';
 
if (
    po.Directory_path 
      &&
    (new RegExp ('^[' + po.save_data.replace (':', '') + ']\\:\\\\')).test (po.Directory_path)
   )
   {
   po.selected_directory = po.File_system_object.GetFolder (po.Directory_path);
   po.enumerator         = new Enumerator (po.selected_directory.files);
   po.save_data          = new Array ();
   po.max_number_simbols = 0;
   po.func_add_space     = function (y) {for (var s = '', k = 0; k < y + 10; k++) s += ' '; return s}
   po.func_add_zero      = function (z) {return ((z < 10) ? '0' : '') + z}
 
   for (; !po.enumerator.atEnd (); po.enumerator.moveNext ())
      po.current_file       = po.enumerator.item (),
      po.temp               = (po.current_file.Name.indexOf ('.') != -1),
      po.temp               = (po.temp) ? (po.current_file.Name.split ('.')) : ['áåç ðàñøèðåíèÿ'],
      po.temp               = po.temp [po.temp.length - 1],
      po.size_file          = Math.floor (po.current_file.size / 1042),
      po.temp              += '\t' + ((!po.size_file) ? '< 1' : po.size_file) + ' ÊÁ',
      po.max_number_simbols = (po.temp.length > po.max_number_simbols) ? po.temp.length : po.max_number_simbols,
      po.save_data [po.save_data.length] = po.temp;
 
   for (var j = 0, lj = po.save_data.length; j < lj; j++)
      po.temp = po.save_data [j].length,
 
      po.save_data [j] = po.save_data [j].split ('\t').join (po.func_add_space (po.max_number_simbols - po.temp));
   po.current_data = new Date,
   po.name_file = po.func_add_zero (po.current_data.getDate ())      + '-' +
                  po.func_add_zero (po.current_data.getMonth () + 1) + '-' +
                                    po.current_data.getFullYear ()   + '-' +
                  po.func_add_zero (po.current_data.getHours ())     + '-' +
                  po.func_add_zero (po.current_data.getMinutes ())   + '.txt',
   po.save_file = po.File_system_object.CreateTextFile (po.Directory_path  + '\\' + po.name_file, true);
 
   po.save_file.Write (po.save_data.join ('\r\n'));
   po.save_file.Close ();
 
   po.Shell_application.ShellExecute (po.name_file, '', po.Directory_path, 'open', 1);
   }
else WScript.Echo ('Êàòàëîã íå âûáðàí.\nGame over.');
PS. извините, что так поздно - был забанен
5
0 / 0 / 0
Регистрация: 14.09.2016
Сообщений: 1
17.04.2019, 06:06 14
А нельзя сделать так, чтоб сканировались и все вложенные папки? Сам в JavaScript я холодный, просто нужен срочно такой скрипт
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
17.04.2019, 12:44 15
SmiD, можно, в разделе фриланса легко реализуют любые ваши пожелания
0
17.04.2019, 12:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2019, 12:44
Помогаю со студенческими работами здесь

Вывести на экран в виде таблицы перечень файлов в указанной пользователем папке и их атрибуты.
Собственно нужно создать программу, которая выводит на экран в виде таблицы перечень файлов в...

Скрипт, который находит количество всех файлов в указанной папке. Вывод осуществляется на экран монитора (в окно вывода
Скрипт, который находит количество всех файлов в указанной папке. Вывод осуществляется на экран...

Вывод размеров файлов и папок в текстовый файл
Здравствуйте уважаемые посетители, есть такая проблема: есть папка, в ней 'F' количество файлов,...

Записать в файл список найденных в указанной папке и подпапках файлов меньших указанного размера
Пользователь вводит адрес папки и размер в байтах. Программа записывает в результирующий файл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru