Практически совершенно верно Вы меня поняли.При распаковке lst-файла если установлено, что каталоги и файлы (2 галки) - он просто распакует как и любой архиватор.А меня интересует, как было верно замечено, чтобы он распаковывал эти упакованные файлы - именно в нулевом размере!D1P писал(а):2Batya: Я понял (сам столкнулся с подобной задачей). Ему надо воссоздать структуру каталогов, учитывая содержащиеся в них файлы, по имеющемуся lst-файлу. "Восстановленные" файлы, само собой, должны быть пустые. "Распаковка" lst-файла пока только позволяет восстановить структуру каталогов, "файлы" игнорируются.
Пустой файл - это что?
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
- Моторокер
- Сообщения: 1517
- Зарегистрирован: Пт май 06, 2005 08:22
- Откуда: г. Пермь (читается Перьмь)
- Контактная информация:
В паскале код на десяток строчек, дольше набирать.
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
ПармаСруб - строительство домов и бань в Перми
kdn
Тогда тебе поможет следующий скрипт:
Сохрани код в файл с расширением vbs. Повесь файл на кнопку. В параметрах кнопки укажи:
%L "%T"
Соответственно, выделяешь файлы и папки и нажимаешь кнопку. На противоположной панели будет создана структура каталогов с файлами нулевого размера.
А затем ты можешь с ними делать что угодно. Например, запаковать в любой архив.
P.S. Если возникнут вопросы, я наверное теперь не скоро смогу помочь - с понедельника я на новой работе, и не знаю, как там с интернетом, а дома я даже комп почти не включаю.
Всем удачи!
Тогда тебе поможет следующий скрипт:
Код: Выделить всё
'=====================================================================
' Создание структуры каталогов и файлов нулевого размера в них
' В параметрах вызова из TC должно быть прописано:
' %L "%T"
'=====================================================================
Option Explicit
Dim FSO, WSH, OTF, Target, NewTar
Dim Selected
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
Set OTF = FSO.OpenTextFile(WScript.Arguments(0), 1)
Target = WScript.Arguments(1)
Do While Not OTF.AtEndOfStream
Selected = OTF.ReadLine
If FSO.FileExists(Selected) Then
WSH.Run "fsutil file createnew """ & Target & FSO.GetFile(Selected).Name & """ 0", 7, True
End If
If FSO.FolderExists(Selected) Then
NewTar = Target & FSO.GetFolder(Selected).Name
If Not FSO.FolderExists(NewTar) Then
FSO.CreateFolder(NewTar)
End If
FolderProcess FSO.GetFolder(Selected), NewTar & "\"
End If
Loop
'MsgBox("Выполнено!")
Set OTF = Nothing
Set FSO = Nothing
Set WSH = Nothing
WScript.Quit()
Function FolderProcess(Fold, Tar)
Dim sf, f, NewF
For Each sf in Fold.SubFolders
NewF = Tar & sf.Name
If Not FSO.FolderExists(NewF) Then
FSO.CreateFolder(NewF)
End If
FolderProcess sf, NewF & "\"
Next
For Each f in Fold.Files
WSH.Run "fsutil file createnew """ & Tar & FSO.GetFile(f).Name & """ 0", 7, True
Next
End Function%L "%T"
Соответственно, выделяешь файлы и папки и нажимаешь кнопку. На противоположной панели будет создана структура каталогов с файлами нулевого размера.
А затем ты можешь с ними делать что угодно. Например, запаковать в любой архив.
P.S. Если возникнут вопросы, я наверное теперь не скоро смогу помочь - с понедельника я на новой работе, и не знаю, как там с интернетом, а дома я даже комп почти не включаю.
Всем удачи!
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
В NTFS - на самом деле ноль. Маленькие файлы (до нескольких сотен байт) там целиком хранятся в таблице MFT и дополнительного места не занимают. Насчёт FAT уже точно не помню. Либо тоже ноль, либо один кластер.kdn писал(а):а вообще говоря эти пустые файлы сколько "весят".В свойствах файла конечно 0 байт, но а на самом деле сколько?
Почему же, ё-моё, ты нигде не пишешь "ё"?
А вот эта таблица MFT где непосредственно находится: в ОС в какой-то папке или она не видна в ОС, а только присутствует на диске? Ее можно просмотреть (применимо к редактированию нулевых файлов, если потребуется).CaptainFlint писал(а):Маленькие файлы (до нескольких сотен байт) там целиком хранятся в таблице MFT и дополнительного места не занимают. Насчёт FAT уже точно не помню. Либо тоже ноль, либо один кластер.
Просто дело в том, что я запустил первый раз через кнопку в TC vbs тот, что Batya привел, а ОС сослалась на какое-то длинное значение индекса в строке 14 (вроде было так написано).А может это просто не та панель была включена.Второй раз - нормально все создалось, только конечно несколько медленно: например папку размером 469 Мб он создавал минут 7 и еще наблюдалась вообще потрясная картина: В ОС почему-то все вкладки на панели задач начали "перемещаться влево" еле-еле, а потом назад, прямо как каретка в печатной машинке.
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Вообще говоря, из ОС она не видна, но особым хитрым способом до неё всё же доступиться можно (например, через плагин NTFS). Однако делать это крайне не рекомендуется, ибо очень легко таким образом навернуть файловую систему.kdn писал(а):А вот эта таблица MFT где непосредственно находится: в ОС в какой-то папке или она не видна в ОС, а только присутствует на диске?
Мне кажется, что ОС, как и файловая система, тут ни при чём, просто скрипт, по всей видимости, был запущен без параметров (учитывая, что 14-я строчка - это "Target = WScript.Arguments(1)"). А вообще, лучше подождать Батю...kdn писал(а):а ОС сослалась на какое-то длинное значение индекса в строке 14 (вроде было так написано).
Почему же, ё-моё, ты нигде не пишешь "ё"?
Не поможете с ответом на вопрос:
Вот эти создаваемые "пустые" файлы они занимают какой-то объем на диске? Я предполагаю использовать этот скрипт так: как только я начинаю новый жесткий диск, то я переношу на него (копирую-создаю) все данные с предыдущего законченного жесткого диска.Каждому файлу на предыдущем диске я присваивал уникальный номер, поэтому после копирования структуры "пустых файлов" на новый хард, я могу сразу определить, на каком диске содержится нужная инфа.
Когда объем на новом харде закончится, я начну новый и пересу на него структуру в виде "пустых файлов" с этого диска №2, который закончился итд.
Вопрос в том, вот эти пустые файлы хоть и не занимают объема, но как мне кажется ведь сведения фиксируются в файловой таблице на диске.Не сможет ли такое повредить файловую таблицу харда, так как с каждым новым начинаемым диском пустых файлов будет все больше и больше, коль я их переношу с предыдущих хардов?
Файловая система сейчас у меня - NTFS
Вот эти создаваемые "пустые" файлы они занимают какой-то объем на диске? Я предполагаю использовать этот скрипт так: как только я начинаю новый жесткий диск, то я переношу на него (копирую-создаю) все данные с предыдущего законченного жесткого диска.Каждому файлу на предыдущем диске я присваивал уникальный номер, поэтому после копирования структуры "пустых файлов" на новый хард, я могу сразу определить, на каком диске содержится нужная инфа.
Когда объем на новом харде закончится, я начну новый и пересу на него структуру в виде "пустых файлов" с этого диска №2, который закончился итд.
Вопрос в том, вот эти пустые файлы хоть и не занимают объема, но как мне кажется ведь сведения фиксируются в файловой таблице на диске.Не сможет ли такое повредить файловую таблицу харда, так как с каждым новым начинаемым диском пустых файлов будет все больше и больше, коль я их переношу с предыдущих хардов?
Файловая система сейчас у меня - NTFS
Нет. Объём в MFT записи конечно займут (если он приличный, то это даже можно будет увидеть в свойствах диска), но ни о какой порче речи и идти не может.Вопрос в том, вот эти пустые файлы хоть и не занимают объема, но как мне кажется ведь сведения фиксируются в файловой таблице на диске.Не сможет ли такое повредить файловую таблицу харда, так как с каждым новым начинаемым диском пустых файлов будет все больше и больше, коль я их переношу с предыдущих хардов?
Что-то эта кнопка у меня больше не работает (раньше кажется работала)
Файлы остаются как были.
Скрипт тоже только создаёт структуру каталогов, а файлов нет.
TC 8b9
Код: Выделить всё
TOTALCMD#BAR#DATA
cmd.exe /c @echo off &
for /f "delims=" %%i in (%F) do fsutil file createnew "%T%%i" 0 > nul
shell32.dll,84
-1Скрипт тоже только создаёт структуру каталогов, а файлов нет.
TC 8b9
cojoc
См. тут.
См. тут.
Хотел бы еще кое-что уточнить по скрипту создания структуры пустых файлов и папок:
Можно ли сделать так, чтобы создавалась не только структура папок и файлов, но и в создаваемых папках и файлах скрипт прописывал имеющиеся атрибуты папок и файлов.
Поясняю, для чего это: Представьте вы скачали базу данных, содержащую уйму gif-ов или отдельных мелких файликов СУБД Cronos - помещать такое в архив rar - займет массу времени да и смысла почти нет, так как, представьте, нужно будет это все распаковывать...а все эти винрары делают это черт знает сколько времени, вот и приходится на них на всех ставить скрытые атрибуты, а данный скрипт не копируют атрубуты. Синхронизация это делает, а скрипт этот нет
Вопрос: Как заставить этот скрипт прописывать атрибуты в создаваемой структуре пустых каталогов и файлов?
Можно ли сделать так, чтобы создавалась не только структура папок и файлов, но и в создаваемых папках и файлах скрипт прописывал имеющиеся атрибуты папок и файлов.
Поясняю, для чего это: Представьте вы скачали базу данных, содержащую уйму gif-ов или отдельных мелких файликов СУБД Cronos - помещать такое в архив rar - займет массу времени да и смысла почти нет, так как, представьте, нужно будет это все распаковывать...а все эти винрары делают это черт знает сколько времени, вот и приходится на них на всех ставить скрытые атрибуты, а данный скрипт не копируют атрубуты. Синхронизация это делает, а скрипт этот нет
Вопрос: Как заставить этот скрипт прописывать атрибуты в создаваемой структуре пустых каталогов и файлов?