Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Возможно ли удалить папку, не удалив содержимое, а присвоив его папке (диску) верхнего уровня?
Например, есть структура папок, в каждой из которых есть и файлы и папки с файлами: D:\Папка 1\Папка 2\Папка 3 Предположим мы решили удалить "Папка 2", но так, чтобы всё ее содержимое, с сохранением структуры подкаталогов перешло к "Папка 1" (поднялось, так сказать, на уровень вверх): D:\Папка 1\Папка 3
Артем у каждого своя метода, кто к чему привык... оба варианта имеют права жить у меня родители так перемещают(какой я указал), а вот другой(твой) метод для них почемуто сложный Я в тотале все делаю, кому как удобно
Сообщение отредактировано Сергей - Ср, 03 Ноября 2010, 18:10
вырежь все из папки 2 и вставь в папку 1, потом удали папку 2, все предельно просто
Quote (Сергей)
открой два праводника
Не, ну это я делаю, ессно... Всеми доступными способами - обычно в проводнике просто перетаскиваю мышкой и все дела... Дело в том, что я не хочу большое количество вложенных файлов и папок просто "переносить", боюсь, что часть информации потеряется, потом не смогу восстановить (как-то сталкивался с таким глюком). Хотелось просто переназначить "родителя", так сказать. Может в реестре это можно как-то сделать... В проводнике виндовс же должно быть указание на "родительскую" папку. Думал может есть что-то вроде команды "удалить, передать содержимое вверх". Любопытно стало, есть ли такой способ... Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
обычно в проводнике просто перетаскиваю мышкой и все дела...
Я поступаю точно так же! Но, если надо копировать "в фоне" большое количество фалов, то удобнее использовать файловый менеджер, например, Total Commander.
Quote (Вадим)
что часть информации потеряется
Отчего она должна теряться? Кстати, в реальности никакого перемещения файлов не существует (за исключением переноса на другой диск), а есть просто переименование.
Quote (Вадим)
Думал может есть что-то вроде команды "удалить, передать содержимое вверх". Любопытно стало, есть ли такой способ...
Гм... Мне такой способ неизвестен.... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Кстати, в реальности никакого перемещения файлов не существует (за исключением переноса на другой диск), а есть просто переименование.
Ну не совсем как бы переименование Просто переносится информация справочника из одной его области в другую, сами файлы остаются на тех же местах что и были.
Quote (Peter)
Цитата от (Вадим) Думал может есть что-то вроде команды "удалить, передать содержимое вверх". Любопытно стало, есть ли такой способ...
Гм... Мне такой способ неизвестен....
Это как посмотреть Описанное тобой вообще то называется переместить, а уж куда, это дело третье, в верх в бок иль еще куда. А команда перемещения - move.
Quote (Вадим)
боюсь, что часть информации потеряется, потом не смогу восстановить (как-то сталкивался с таким глюком).
Это вполне реальный случай, если есть повреждения структуры справочника, по этому при такий делах, предварительно нужно проверить диск, и только после этого перемещать.
Quote (Сергей)
через реестр точно нет.
Ну реестр тут не причем, файловая структура не имеет отношения к настройкам системы, ну почти Если будеш перемещать что то что прописано в реестре, используемое системой, то не всегда оно будет адекватным, в одних случаях перепишется и путь к ним в реестре, в других нет.
Ну не совсем как бы переименование Просто переносится информация справочника из одной его области в другую, сами файлы остаются на тех же местах что и были
Quote (Peter)
в реальности никакого перемещения файлов не существует (за исключением переноса на другой диск), а есть просто переименование
И какая разница?
Игра слов...
Quote (Alex3A)
Это вполне реальный случай, если есть повреждения структуры справочника
Ну если только имеется FAT.. А иначе, винт нужно нести в помойку... Ни разу (этак лет за 7-8) не припомню случая, в своей практике, потери файлов при переносе.
Добавлено (04 Ноябрь 2010, 02:28) ---------------------------------------------
А вообще, тема несерьезная. Этак мы дойдем вопроса - каким пальцем лучше мышку жать при переносе файлов?
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Ну так, чисто для информации, FAT File Allocation table таблица размещения файлов, по другому справочник- область памяти на диске, хранящая информацию о размещении файлов. Описывает файлы и содержит их атрибуты, имя это то же атрибут. Файл и папка, в таблице, отличаются только одним атрибутом, номер начального кластера у файла показывает его начало, у папки это адрес кластера в котором размещена таблица файлов этой папки, аналогичная корневой. Перемещение ветки файловой системы из одного места в другое, осуществляется переносом записи из одной таблицы в другую, сами файлы остаются в тех же местах где и были. FAT, FAT12, FAT16, FAT32, NTFS это все та же фат, или справочник, разница между ними в их организации, NTFS New Technology File System просто более изощренная версия, имеющая множество прибамбасов, таких как журналируемость и иже с ними. Таким образом, переименование это изменение атрибута имя файла\папки а перенос это перенос записи(всех атрибутов) из одной таблицы в другую.
Quote (Peter)
Ну если только имеется FAT.. А иначе, винт нужно нести в помойку... Ни разу (этак лет за 7-8) не припомню случая, в своей практике, потери файлов при переносе.
Ну в винде может быть все что угодно, на то она и винда Просто в нтфс имеется возможность отката, она запоминает прежнее состояние, по этому и более устойчива.
Quote (Alien)
можно как-то программными средствами перехватить эти события ну и сделать новую функцию
подождите, а апи винды имеет событие создания/копирования файлов?
Винда состоит из кучи библиотек, которые имеют кучу функций, так же имеется механизм встраивания своего кода в системные функции, для каждой системной фунции имеется область памяти(таблица) в которой находится ее адрес, по этому адресу записуем свой обработчик, после выполнения которого, управление передается дальше, системной функции или иному обработчику. Таким образом, выстраивается цепочка обработчиков и обеспечивается механизм обработки с помощью встраивания.. О событиях винды, читаем в ее описаниях. Ищем "Перехватчик API-функции NtOpenFile", файловые операции идут через нее, запись или чтение определяеттся ее флагами, находится в ntdll.dll
Quote
function OpenFile(FileName: PChar; var ReOpenBuff: TOFStruct: Style: Word): Integer;
Создает, откpывает, повтоpно откpывает и удалает файл.