Есть оформленная медиатека (указаны название фильмов, артисты, и т.д.) и есть необходимость перенести эту медиатеку скажем на другой диск. Возможно ли ее перенести без потери информации о медиаресурсах?
Если вручную "подправить" путь - информация о медиаресурсах не отображается.
Перенос медиатеки
Re: Перенос медиатеки
Идентификаторы ресурсов привязаны к пути файла, поэтому при изменении пути связь файла и описания теряется. Встроенной возможности переноса нет, но наверно можно реализовать через обработку медиа-ресурсов. Возможно позже выложу пример.Weller-2 wrote:Есть оформленная медиатека (указаны название фильмов, артисты, и т.д.) и есть необходимость перенести эту медиатеку скажем на другой диск. Возможно ли ее перенести без потери информации о медиаресурсах?
Если вручную "подправить" путь - информация о медиаресурсах не отображается.
Re: Перенос медиатеки
Скрипт сохранения свойств выделенных в списке фильмов, свойства сохраняются в файле с измененным расширением файла (hmi), необходимая версия 1.09.9
Для формирования файлов информации для всех файлов текущего списка фильмов HmsCurrentMediaListSelection можно заменить на HmsCurrentMediaListItems
Скрипт загрузки свойств выделенных в списке фильмов, свойства загружаются из файла с измененным расширением файла (hmi), необходимая версия 1.09.9
Code: Select all
const
mpiIMDBInfo = 1000;
procedure ProcessItem(aItem: THmsScriptMediaItem; const aProperties: array of Integer);
var
i: Integer;
XMLDocument: TXMLDocument;
begin
if FileExists(aItem.Properties[mpiFilePath]) then begin
XMLDocument := TXMLDocument.Create;
try
XMLDocument.Root.Name := 'HmsMediaItem';
for i := 0 to Length(aProperties) - 1 do
if VarToStr(aItem.Properties[aProperties[i]]) <> '' then
XMLDocument.Root.Add(IntToStr(aProperties[i]), aItem.Properties[aProperties[i]]);
XMLDocument.SaveToFile(ChangeFileExt(aItem.Properties[mpiFilePath], '.hmi'));
finally
XMLDocument.Free
end
end
end;
var
i: Integer;
MediaItemList: THmsScriptMediaItemList;
begin
MediaItemList := HmsCurrentMediaListSelection;
try
for i := 0 to MediaItemList.Count - 1 do
ProcessItem(MediaItemList[i], [mpiActor, mpiAuthor, mpiAlbum, mpiComment,
mpiCopyright, mpiDirector, mpiGenre, mpiProducer, mpiThumbnail,
mpiTitle, mpiIMDBInfo, mpiYear, mpiRating])
finally
MediaItemList.Free
end;
ProcessMediaResult := True
end.
Скрипт загрузки свойств выделенных в списке фильмов, свойства загружаются из файла с измененным расширением файла (hmi), необходимая версия 1.09.9
Code: Select all
procedure ProcessItem(aItem: THmsScriptMediaItem);
var
i: Integer;
XMLDocument: TXMLDocument;
begin
if FileExists(ChangeFileExt(aItem.Properties[mpiFilePath], '.hmi')) then begin
XMLDocument := TXMLDocument.Create;
try
XMLDocument.LoadFromFile(ChangeFileExt(aItem.Properties[mpiFilePath], '.hmi'));
if XMLDocument.Root.Name = 'HmsMediaItem' then
for i := 0 to XMLDocument.Root.Count - 1 do
aItem.Properties[StrToInt(XMLDocument.Root.Items[i].Name)] := XMLDocument.Root.Items[i].Value;
finally
XMLDocument.Free
end
end
end;
var
i: Integer;
MediaItemList: THmsScriptMediaItemList;
begin
MediaItemList := HmsCurrentMediaListSelection;
try
for i := 0 to MediaItemList.Count - 1 do
ProcessItem(MediaItemList[i])
finally
MediaItemList.Free
end;
HmsDatabaseAutoSave;
ProcessMediaResult := True
end.