View previous topic :: View next topic |
Author |
Message |
kdn
Joined: 19 Sep 2006 Posts: 85 Location: Москва, РФ
|
(Separately) Posted: Thu Oct 05, 2006 20:34 Post subject: |
|
|
D1P wrote: | 2Batya: Я понял (сам столкнулся с подобной задачей). Ему надо воссоздать структуру каталогов, учитывая содержащиеся в них файлы, по имеющемуся lst-файлу. "Восстановленные" файлы, само собой, должны быть пустые. "Распаковка" lst-файла пока только позволяет восстановить структуру каталогов, "файлы" игнорируются. |
Практически совершенно верно Вы меня поняли.При распаковке lst-файла если установлено, что каталоги и файлы (2 галки) - он просто распакует как и любой архиватор.А меня интересует, как было верно замечено, чтобы он распаковывал эти упакованные файлы - именно в нулевом размере! |
|
Back to top |
|
|
Моторокер
Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Fri Oct 06, 2006 07:10 Post subject: |
|
|
В паскале код на десяток строчек, дольше набирать. _________________ плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Fri Oct 06, 2006 19:59 Post subject: |
|
|
kdn
Тогда тебе поможет следующий скрипт:
Code: | '=====================================================================
' Создание структуры каталогов и файлов нулевого размера в них
' В параметрах вызова из 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 |
Сохрани код в файл с расширением vbs. Повесь файл на кнопку. В параметрах кнопки укажи:
%L "%T"
Соответственно, выделяешь файлы и папки и нажимаешь кнопку. На противоположной панели будет создана структура каталогов с файлами нулевого размера.
А затем ты можешь с ними делать что угодно. Например, запаковать в любой архив.
P.S. Если возникнут вопросы, я наверное теперь не скоро смогу помочь - с понедельника я на новой работе, и не знаю, как там с интернетом, а дома я даже комп почти не включаю.
Всем удачи! |
|
Back to top |
|
|
kdn
Joined: 19 Sep 2006 Posts: 85 Location: Москва, РФ
|
(Separately) Posted: Fri Oct 06, 2006 21:16 Post subject: |
|
|
Batya
Очень Вам признателен.Это действительно очень нужная и полезная вещь.Спасибо! |
|
Back to top |
|
|
kdn
Joined: 19 Sep 2006 Posts: 85 Location: Москва, РФ
|
(Separately) Posted: Mon Oct 09, 2006 17:26 Post subject: |
|
|
Хотел бы еще спросить: а вообще говоря эти пустые файлы сколько "весят".В свойствах файла конечно 0 байт, но а на самом деле сколько? |
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6151 Location: Москва
|
(Separately) Posted: Mon Oct 09, 2006 17:28 Post subject: |
|
|
kdn wrote: | а вообще говоря эти пустые файлы сколько "весят".В свойствах файла конечно 0 байт, но а на самом деле сколько? |
В NTFS - на самом деле ноль. Маленькие файлы (до нескольких сотен байт) там целиком хранятся в таблице MFT и дополнительного места не занимают. Насчёт FAT уже точно не помню. Либо тоже ноль, либо один кластер. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
kdn
Joined: 19 Sep 2006 Posts: 85 Location: Москва, РФ
|
(Separately) Posted: Mon Oct 09, 2006 17:39 Post subject: |
|
|
CaptainFlint wrote: | Маленькие файлы (до нескольких сотен байт) там целиком хранятся в таблице MFT и дополнительного места не занимают. Насчёт FAT уже точно не помню. Либо тоже ноль, либо один кластер. |
А вот эта таблица MFT где непосредственно находится: в ОС в какой-то папке или она не видна в ОС, а только присутствует на диске? Ее можно просмотреть (применимо к редактированию нулевых файлов, если потребуется).
Просто дело в том, что я запустил первый раз через кнопку в TC vbs тот, что Batya привел, а ОС сослалась на какое-то длинное значение индекса в строке 14 (вроде было так написано).А может это просто не та панель была включена.Второй раз - нормально все создалось, только конечно несколько медленно: например папку размером 469 Мб он создавал минут 7 и еще наблюдалась вообще потрясная картина: В ОС почему-то все вкладки на панели задач начали "перемещаться влево" еле-еле, а потом назад, прямо как каретка в печатной машинке. |
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6151 Location: Москва
|
(Separately) Posted: Mon Oct 09, 2006 17:57 Post subject: |
|
|
kdn wrote: | А вот эта таблица MFT где непосредственно находится: в ОС в какой-то папке или она не видна в ОС, а только присутствует на диске? |
Вообще говоря, из ОС она не видна, но особым хитрым способом до неё всё же доступиться можно (например, через плагин NTFS). Однако делать это крайне не рекомендуется, ибо очень легко таким образом навернуть файловую систему.
kdn wrote: | а ОС сослалась на какое-то длинное значение индекса в строке 14 (вроде было так написано). |
Мне кажется, что ОС, как и файловая система, тут ни при чём, просто скрипт, по всей видимости, был запущен без параметров (учитывая, что 14-я строчка - это "Target = WScript.Arguments(1)"). А вообще, лучше подождать Батю... _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
kdn
Joined: 19 Sep 2006 Posts: 85 Location: Москва, РФ
|
(Separately) Posted: Fri Jun 29, 2007 10:04 Post subject: |
|
|
Не поможете с ответом на вопрос:
Вот эти создаваемые "пустые" файлы они занимают какой-то объем на диске? Я предполагаю использовать этот скрипт так: как только я начинаю новый жесткий диск, то я переношу на него (копирую-создаю) все данные с предыдущего законченного жесткого диска.Каждому файлу на предыдущем диске я присваивал уникальный номер, поэтому после копирования структуры "пустых файлов" на новый хард, я могу сразу определить, на каком диске содержится нужная инфа.
Когда объем на новом харде закончится, я начну новый и пересу на него структуру в виде "пустых файлов" с этого диска №2, который закончился итд.
Вопрос в том, вот эти пустые файлы хоть и не занимают объема, но как мне кажется ведь сведения фиксируются в файловой таблице на диске.Не сможет ли такое повредить файловую таблицу харда, так как с каждым новым начинаемым диском пустых файлов будет все больше и больше, коль я их переношу с предыдущих хардов?
Файловая система сейчас у меня - NTFS |
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Fri Jun 29, 2007 12:03 Post subject: |
|
|
Quote: | Вопрос в том, вот эти пустые файлы хоть и не занимают объема, но как мне кажется ведь сведения фиксируются в файловой таблице на диске.Не сможет ли такое повредить файловую таблицу харда, так как с каждым новым начинаемым диском пустых файлов будет все больше и больше, коль я их переношу с предыдущих хардов? |
Нет. Объём в MFT записи конечно займут (если он приличный, то это даже можно будет увидеть в свойствах диска), но ни о какой порче речи и идти не может. _________________ База знаний о Total Commander
Блог |
|
Back to top |
|
|
cojoc
Joined: 04 Sep 2009 Posts: 144
|
(Separately) Posted: Mon Nov 14, 2011 02:48 Post subject: |
|
|
Что-то эта кнопка у меня больше не работает (раньше кажется работала)
Code: | 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 |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Nov 14, 2011 02:52 Post subject: |
|
|
cojoc
См. тут. |
|
Back to top |
|
|
cojoc
Joined: 04 Sep 2009 Posts: 144
|
(Separately) Posted: Mon Nov 14, 2011 03:05 Post subject: |
|
|
Flasher, спасибо
Заменил строки - заработало!
Отдельное спасибо за ответ в столь поздний час |
|
Back to top |
|
|
kdn
Joined: 19 Sep 2006 Posts: 85 Location: Москва, РФ
|
(Separately) Posted: Fri Dec 07, 2012 13:03 Post subject: |
|
|
Хотел бы еще кое-что уточнить по скрипту создания структуры пустых файлов и папок:
Можно ли сделать так, чтобы создавалась не только структура папок и файлов, но и в создаваемых папках и файлах скрипт прописывал имеющиеся атрибуты папок и файлов.
Поясняю, для чего это: Представьте вы скачали базу данных, содержащую уйму gif-ов или отдельных мелких файликов СУБД Cronos - помещать такое в архив rar - займет массу времени да и смысла почти нет, так как, представьте, нужно будет это все распаковывать...а все эти винрары делают это черт знает сколько времени, вот и приходится на них на всех ставить скрытые атрибуты, а данный скрипт не копируют атрубуты. Синхронизация это делает, а скрипт этот нет
Вопрос: Как заставить этот скрипт прописывать атрибуты в создаваемой структуре пустых каталогов и файлов? |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|