Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: DEMBEL, Peter  
Как корректно уменьшить вложенность папок?
ВадимДата: Ср, 03 Ноября 2010, 16:49 | Сообщение # 1
Генератор идей
Возможно ли удалить папку, не удалив содержимое, а присвоив его папке (диску) верхнего уровня?

Например, есть структура папок, в каждой из которых есть и файлы и папки с файлами:
D:\Папка 1\Папка 2\Папка 3
Предположим мы решили удалить "Папка 2", но так, чтобы всё ее содержимое, с сохранением структуры подкаталогов перешло к "Папка 1" (поднялось, так сказать, на уровень вверх):
D:\Папка 1\Папка 3

Такое возможно?


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
СообщениеВозможно ли удалить папку, не удалив содержимое, а присвоив его папке (диску) верхнего уровня?

Например, есть структура папок, в каждой из которых есть и файлы и папки с файлами:
D:\Папка 1\Папка 2\Папка 3
Предположим мы решили удалить "Папка 2", но так, чтобы всё ее содержимое, с сохранением структуры подкаталогов перешло к "Папка 1" (поднялось, так сказать, на уровень вверх):
D:\Папка 1\Папка 3

Такое возможно?


Автор - Вадим
Дата добавления - 03 Ноября 2010 в 16:49
СергейДата: Ср, 03 Ноября 2010, 16:58 | Сообщение # 2
Необукер
Quote (Вадим)
Такое возможно?
а почему нет, в тотале перемести

Добавлено (03 Ноябрь 2010, 16:58)
---------------------------------------------
тебе программно надо?

 
Сообщение
Quote (Вадим)
Такое возможно?
а почему нет, в тотале перемести

Добавлено (03 Ноябрь 2010, 16:58)
---------------------------------------------
тебе программно надо?


Автор - Сергей
Дата добавления - 03 Ноября 2010 в 16:58
ВадимДата: Ср, 03 Ноября 2010, 17:33 | Сообщение # 3
Генератор идей
Quote (Сергей)
в тотале перемести
Я им не пользуюсь, думал может стандартная функция виндовс есть. Как программно изменить вложенность тоже интересно.


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Сергей)
в тотале перемести
Я им не пользуюсь, думал может стандартная функция виндовс есть. Как программно изменить вложенность тоже интересно.

Автор - Вадим
Дата добавления - 03 Ноября 2010 в 17:33
AlienДата: Ср, 03 Ноября 2010, 17:42 | Сообщение # 4
вырежь все из папки 2 и вставь в папку 1, потом удали папку 2, все предельно просто :)
 
Сообщениевырежь все из папки 2 и вставь в папку 1, потом удали папку 2, все предельно просто :)

Автор - Alien
Дата добавления - 03 Ноября 2010 в 17:42
СергейДата: Ср, 03 Ноября 2010, 17:59 | Сообщение # 5
Необукер
Quote (Вадим)
Я им не пользуюсь, думал может стандартная функция виндовс есть
пример:
1)открой два праводника
01)D:\Папка 1\Папка 2\Папка 3
02)D:\Папка 1\Папка 2
2)Выдели все файлы в "Папка 3" зажми Shift и перенеси выделеные файлы в "Папка 2"
3)удали папку "Папка 3"

Добавлено (03 Ноябрь 2010, 17:59)
---------------------------------------------

Quote (Вадим)
Как программно изменить




но по вбс лучше у дембеля уточнить
да и по остальным в сети валом примеров :D


Сообщение отредактировано
Сергей - Ср, 03 Ноября 2010, 18:06
 
Сообщение
Quote (Вадим)
Я им не пользуюсь, думал может стандартная функция виндовс есть
пример:
1)открой два праводника
01)D:\Папка 1\Папка 2\Папка 3
02)D:\Папка 1\Папка 2
2)Выдели все файлы в "Папка 3" зажми Shift и перенеси выделеные файлы в "Папка 2"
3)удали папку "Папка 3"

Добавлено (03 Ноябрь 2010, 17:59)
---------------------------------------------

Quote (Вадим)
Как программно изменить




но по вбс лучше у дембеля уточнить
да и по остальным в сети валом примеров :D

Автор - Сергей
Дата добавления - 03 Ноября 2010 в 17:59
AlienДата: Ср, 03 Ноября 2010, 18:00 | Сообщение # 6
Quote (Сергей)
пример:
1)открой два праводника
01)D:\Папка 1\Папка 2\Папка 3
02)D:\Папка 1\Папка 2
2)Выдели все файлы в "Папка 3" зажми Shift и перенеси выделеные файлы в "Папка 2"
3)удали папку "Папка 3"

я вот тоже самое сказал, только 2 проводника открывать необязательно, просто Ctrl+A->Ctrl+C->Назад->Назад->Ctrl+V->Папка 2 (удалить)
 
Сообщение
Quote (Сергей)
пример:
1)открой два праводника
01)D:\Папка 1\Папка 2\Папка 3
02)D:\Папка 1\Папка 2
2)Выдели все файлы в "Папка 3" зажми Shift и перенеси выделеные файлы в "Папка 2"
3)удали папку "Папка 3"

я вот тоже самое сказал, только 2 проводника открывать необязательно, просто Ctrl+A->Ctrl+C->Назад->Назад->Ctrl+V->Папка 2 (удалить)

Автор - Alien
Дата добавления - 03 Ноября 2010 в 18:00
СергейДата: Ср, 03 Ноября 2010, 18:08 | Сообщение # 7
Необукер
Артем у каждого своя метода, кто к чему привык... оба варианта имеют права жить :)
у меня родители так перемещают(какой я указал), а вот другой(твой) метод для них почемуто сложный :D
Я в тотале все делаю, кому как удобно :)


Сообщение отредактировано
Сергей - Ср, 03 Ноября 2010, 18:10
 
СообщениеАртем у каждого своя метода, кто к чему привык... оба варианта имеют права жить :)
у меня родители так перемещают(какой я указал), а вот другой(твой) метод для них почемуто сложный :D
Я в тотале все делаю, кому как удобно :)

Автор - Сергей
Дата добавления - 03 Ноября 2010 в 18:08
ВадимДата: Чт, 04 Ноября 2010, 00:48 | Сообщение # 8
Генератор идей
Quote (Alien)
вырежь все из папки 2 и вставь в папку 1, потом удали папку 2, все предельно просто

Quote (Сергей)
открой два праводника
Не, ну это я делаю, ессно... Всеми доступными способами - обычно в проводнике просто перетаскиваю мышкой и все дела...
Дело в том, что я не хочу большое количество вложенных файлов и папок просто "переносить", боюсь, что часть информации потеряется, потом не смогу восстановить (как-то сталкивался с таким глюком). Хотелось просто переназначить "родителя", так сказать. Может в реестре это можно как-то сделать... В проводнике виндовс же должно быть указание на "родительскую" папку. Думал может есть что-то вроде команды "удалить, передать содержимое вверх".
Любопытно стало, есть ли такой способ...


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Alien)
вырежь все из папки 2 и вставь в папку 1, потом удали папку 2, все предельно просто

Quote (Сергей)
открой два праводника
Не, ну это я делаю, ессно... Всеми доступными способами - обычно в проводнике просто перетаскиваю мышкой и все дела...
Дело в том, что я не хочу большое количество вложенных файлов и папок просто "переносить", боюсь, что часть информации потеряется, потом не смогу восстановить (как-то сталкивался с таким глюком). Хотелось просто переназначить "родителя", так сказать. Может в реестре это можно как-то сделать... В проводнике виндовс же должно быть указание на "родительскую" папку. Думал может есть что-то вроде команды "удалить, передать содержимое вверх".
Любопытно стало, есть ли такой способ...

Автор - Вадим
Дата добавления - 04 Ноября 2010 в 00:48
PeterДата: Чт, 04 Ноября 2010, 00:54 | Сообщение # 9
Админ NeoBook
Quote (Вадим)
обычно в проводнике просто перетаскиваю мышкой и все дела...

Я поступаю точно так же!
Но, если надо копировать "в фоне" большое количество фалов, то удобнее использовать файловый менеджер, например, Total Commander.
Quote (Вадим)
что часть информации потеряется

Отчего она должна теряться?
Кстати, в реальности никакого перемещения файлов не существует (за исключением переноса на другой диск), а есть просто переименование.
Quote (Вадим)
Думал может есть что-то вроде команды "удалить, передать содержимое вверх".
Любопытно стало, есть ли такой способ...

Гм...
Мне такой способ неизвестен.... redface


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Вадим)
обычно в проводнике просто перетаскиваю мышкой и все дела...

Я поступаю точно так же!
Но, если надо копировать "в фоне" большое количество фалов, то удобнее использовать файловый менеджер, например, Total Commander.
Quote (Вадим)
что часть информации потеряется

Отчего она должна теряться?
Кстати, в реальности никакого перемещения файлов не существует (за исключением переноса на другой диск), а есть просто переименование.
Quote (Вадим)
Думал может есть что-то вроде команды "удалить, передать содержимое вверх".
Любопытно стало, есть ли такой способ...

Гм...
Мне такой способ неизвестен.... redface

Автор - Peter
Дата добавления - 04 Ноября 2010 в 00:54
СергейДата: Чт, 04 Ноября 2010, 01:04 | Сообщение # 10
Необукер
Quote (Вадим)
Любопытно стало, есть ли такой способ
через реестр точно нет.


Сообщение отредактировано
Сергей - Чт, 04 Ноября 2010, 01:05
 
Сообщение
Quote (Вадим)
Любопытно стало, есть ли такой способ
через реестр точно нет.

Автор - Сергей
Дата добавления - 04 Ноября 2010 в 01:04
ВадимДата: Чт, 04 Ноября 2010, 01:07 | Сообщение # 11
Генератор идей
Quote (Peter)
Мне такой способ неизвестен...
Да я поди перемудрил, в очередной раз. Бывает у меня такое... :D

Сергей, спасибо за примеры программной реализации!


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Peter)
Мне такой способ неизвестен...
Да я поди перемудрил, в очередной раз. Бывает у меня такое... :D

Сергей, спасибо за примеры программной реализации!


Автор - Вадим
Дата добавления - 04 Ноября 2010 в 01:07
Alex3AДата: Чт, 04 Ноября 2010, 02:06 | Сообщение # 12
Друг клуба ММВ
Quote (Peter)
Кстати, в реальности никакого перемещения файлов не существует (за исключением переноса на другой диск), а есть просто переименование.

Ну не совсем как бы переименование :D
Просто переносится информация справочника из одной его области в другую, сами файлы остаются на тех же местах что и были.
Quote (Peter)
Цитата от (Вадим)
Думал может есть что-то вроде команды "удалить, передать содержимое вверх".
Любопытно стало, есть ли такой способ...

Гм...
Мне такой способ неизвестен....


Это как посмотреть :D Описанное тобой вообще то называется переместить, а уж куда, это дело третье, в верх в бок иль еще куда. :D А команда перемещения - move.
Quote (Вадим)
боюсь, что часть информации потеряется, потом не смогу восстановить (как-то сталкивался с таким глюком).

Это вполне реальный случай, если есть повреждения структуры справочника, по этому при такий делах, предварительно нужно проверить диск, и только после этого перемещать.
Quote (Сергей)
через реестр точно нет.

Ну реестр тут не причем, файловая структура не имеет отношения к настройкам системы, ну почти :D Если будеш перемещать что то что прописано в реестре, используемое системой, то не всегда оно будет адекватным, в одних случаях перепишется и путь к ним в реестре, в других нет.
 
Сообщение
Quote (Peter)
Кстати, в реальности никакого перемещения файлов не существует (за исключением переноса на другой диск), а есть просто переименование.

Ну не совсем как бы переименование :D
Просто переносится информация справочника из одной его области в другую, сами файлы остаются на тех же местах что и были.
Quote (Peter)
Цитата от (Вадим)
Думал может есть что-то вроде команды "удалить, передать содержимое вверх".
Любопытно стало, есть ли такой способ...

Гм...
Мне такой способ неизвестен....


Это как посмотреть :D Описанное тобой вообще то называется переместить, а уж куда, это дело третье, в верх в бок иль еще куда. :D А команда перемещения - move.
Quote (Вадим)
боюсь, что часть информации потеряется, потом не смогу восстановить (как-то сталкивался с таким глюком).

Это вполне реальный случай, если есть повреждения структуры справочника, по этому при такий делах, предварительно нужно проверить диск, и только после этого перемещать.
Quote (Сергей)
через реестр точно нет.

Ну реестр тут не причем, файловая структура не имеет отношения к настройкам системы, ну почти :D Если будеш перемещать что то что прописано в реестре, используемое системой, то не всегда оно будет адекватным, в одних случаях перепишется и путь к ним в реестре, в других нет.

Автор - Alex3A
Дата добавления - 04 Ноября 2010 в 02:06
PeterДата: Чт, 04 Ноября 2010, 02:28 | Сообщение # 13
Админ NeoBook
Quote (Alex3A)
Ну не совсем как бы переименование
Просто переносится информация справочника из одной его области в другую, сами файлы остаются на тех же местах что и были

Quote (Peter)
в реальности никакого перемещения файлов не существует (за исключением переноса на другой диск), а есть просто переименование

И какая разница?
:D
Игра слов...
Quote (Alex3A)
Это вполне реальный случай, если есть повреждения структуры справочника

Ну если только имеется FAT..
А иначе, винт нужно нести в помойку...
Ни разу (этак лет за 7-8) не припомню случая, в своей практике, потери файлов при переносе.

Добавлено (04 Ноябрь 2010, 02:28)
---------------------------------------------



- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Alex3A)
Ну не совсем как бы переименование
Просто переносится информация справочника из одной его области в другую, сами файлы остаются на тех же местах что и были

Quote (Peter)
в реальности никакого перемещения файлов не существует (за исключением переноса на другой диск), а есть просто переименование

И какая разница?
:D
Игра слов...
Quote (Alex3A)
Это вполне реальный случай, если есть повреждения структуры справочника

Ну если только имеется FAT..
А иначе, винт нужно нести в помойку...
Ни разу (этак лет за 7-8) не припомню случая, в своей практике, потери файлов при переносе.

Добавлено (04 Ноябрь 2010, 02:28)
---------------------------------------------


Автор - Peter
Дата добавления - 04 Ноября 2010 в 02:28
AlienДата: Чт, 04 Ноября 2010, 09:25 | Сообщение # 14
можно как-то программными средствами перехватить эти события ну и сделать новую функцию
Прикрепления: 6616816.jpg (38.6 Kb)
 
Сообщениеможно как-то программными средствами перехватить эти события ну и сделать новую функцию

Автор - Alien
Дата добавления - 04 Ноября 2010 в 09:25
DEMBELДата: Чт, 04 Ноября 2010, 11:32 | Сообщение # 15
Наш дизайнер
:D
пишешь оболочку ОС для жывотных :D да это будет востребовано


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение:D
пишешь оболочку ОС для жывотных :D да это будет востребовано

Автор - DEMBEL
Дата добавления - 04 Ноября 2010 в 11:32
Alex3AДата: Чт, 04 Ноября 2010, 17:18 | Сообщение # 16
Друг клуба ММВ
Quote (Peter)
И какая разница?

Ну так, чисто для информации, FAT File Allocation table таблица размещения файлов, по другому справочник- область памяти на диске, хранящая информацию о размещении файлов. Описывает файлы и содержит их атрибуты, имя это то же атрибут. Файл и папка, в таблице, отличаются только одним атрибутом, номер начального кластера у файла показывает его начало, у папки это адрес кластера в котором размещена таблица файлов этой папки, аналогичная корневой. Перемещение ветки файловой системы из одного места в другое, осуществляется переносом записи из одной таблицы в другую, сами файлы остаются в тех же местах где и были. FAT, FAT12, FAT16, FAT32, NTFS это все та же фат, или справочник, разница между ними в их организации, NTFS New Technology File System просто более изощренная версия, имеющая множество прибамбасов, таких как журналируемость и иже с ними. Таким образом, переименование это изменение атрибута имя файла\папки а перенос это перенос записи(всех атрибутов) из одной таблицы в другую.
Quote (Peter)
Ну если только имеется FAT..
А иначе, винт нужно нести в помойку...
Ни разу (этак лет за 7-8) не припомню случая, в своей практике, потери файлов при переносе.

Ну в винде может быть все что угодно, на то она и винда :D Просто в нтфс имеется возможность отката, она запоминает прежнее состояние, по этому и более устойчива.
Quote (Alien)
можно как-то программными средствами перехватить эти события ну и сделать новую функцию

Можно, апи винды имеет такие механизмы.
 
Сообщение
Quote (Peter)
И какая разница?

Ну так, чисто для информации, FAT File Allocation table таблица размещения файлов, по другому справочник- область памяти на диске, хранящая информацию о размещении файлов. Описывает файлы и содержит их атрибуты, имя это то же атрибут. Файл и папка, в таблице, отличаются только одним атрибутом, номер начального кластера у файла показывает его начало, у папки это адрес кластера в котором размещена таблица файлов этой папки, аналогичная корневой. Перемещение ветки файловой системы из одного места в другое, осуществляется переносом записи из одной таблицы в другую, сами файлы остаются в тех же местах где и были. FAT, FAT12, FAT16, FAT32, NTFS это все та же фат, или справочник, разница между ними в их организации, NTFS New Technology File System просто более изощренная версия, имеющая множество прибамбасов, таких как журналируемость и иже с ними. Таким образом, переименование это изменение атрибута имя файла\папки а перенос это перенос записи(всех атрибутов) из одной таблицы в другую.
Quote (Peter)
Ну если только имеется FAT..
А иначе, винт нужно нести в помойку...
Ни разу (этак лет за 7-8) не припомню случая, в своей практике, потери файлов при переносе.

Ну в винде может быть все что угодно, на то она и винда :D Просто в нтфс имеется возможность отката, она запоминает прежнее состояние, по этому и более устойчива.
Quote (Alien)
можно как-то программными средствами перехватить эти события ну и сделать новую функцию

Можно, апи винды имеет такие механизмы.

Автор - Alex3A
Дата добавления - 04 Ноября 2010 в 17:18
AlienДата: Чт, 04 Ноября 2010, 18:12 | Сообщение # 17
 
Сообщение

Автор - Alien
Дата добавления - 04 Ноября 2010 в 18:12
Alex3AДата: Чт, 04 Ноября 2010, 19:50 | Сообщение # 18
Друг клуба ММВ
Quote (Alien)
подождите, а апи винды имеет событие создания/копирования файлов?

Винда состоит из кучи библиотек, которые имеют кучу функций, так же имеется механизм встраивания своего кода в системные функции, для каждой системной фунции имеется область памяти(таблица) в которой находится ее адрес, по этому адресу записуем свой обработчик, после выполнения которого, управление передается дальше, системной функции или иному обработчику. Таким образом, выстраивается цепочка обработчиков и обеспечивается механизм обработки с помощью встраивания..
О событиях винды, читаем в ее описаниях. Ищем "Перехватчик API-функции NtOpenFile", файловые операции идут через нее, запись или чтение определяеттся ее флагами, находится в ntdll.dll
Quote
function OpenFile(FileName: PChar; var ReOpenBuff: TOFStruct: Style: Word): Integer;

Создает, откpывает, повтоpно откpывает и удалает файл.

 
Сообщение
Quote (Alien)
подождите, а апи винды имеет событие создания/копирования файлов?

Винда состоит из кучи библиотек, которые имеют кучу функций, так же имеется механизм встраивания своего кода в системные функции, для каждой системной фунции имеется область памяти(таблица) в которой находится ее адрес, по этому адресу записуем свой обработчик, после выполнения которого, управление передается дальше, системной функции или иному обработчику. Таким образом, выстраивается цепочка обработчиков и обеспечивается механизм обработки с помощью встраивания..
О событиях винды, читаем в ее описаниях. Ищем "Перехватчик API-функции NtOpenFile", файловые операции идут через нее, запись или чтение определяеттся ее флагами, находится в ntdll.dll
Quote
function OpenFile(FileName: PChar; var ReOpenBuff: TOFStruct: Style: Word): Integer;

Создает, откpывает, повтоpно откpывает и удалает файл.


Автор - Alex3A
Дата добавления - 04 Ноября 2010 в 19:50
  • Страница 1 из 1
  • 1
Поиск: