По поводу стримов...
Команда Delete при перемещении вызывается сначала для файла, а затем (!) для стрима. Т.е. FCE рассматривает стрим как "исчо один файл". Насколько я понимаю, при удалении файла его стримы грохаются автоматом. В принципе в лоб это правится "костылем" - вместо:
вставить
Code: Select all
if (FileExists(SrcName) && !Delete(SrcName))
Логично - если файла нет - то зачем пытаться удалять...
НО!
Допустим при чтении в буфер влез файл, а его стрим не поместился. И у нас отключено параллельное копирование (т.е. пока буфер не сброшен ничего нового не читается). После записи файла, я подозреваю, FCE грохнет исходный (естественно при перемещении раздел-раздел), ну и с видом невинного младенца попытается скопировать стрим... Хотя, возможно, если у файла есть стримы, то пока он не считает и их, файл остается открытым.
Лично мне ковырятся в костылеобразном (все на goto держится) коде FCE уже наскучило. Поэтому завтра я скорее всего выложу 1.8.2 альфу с вышеизложенным костылем и на этом закончу.