Я пишу CD/DVD, используя IMAPI с приложением Windows C# .NET. Данные, которые я пишу на CD, содержат один исполняемый файл (test.exe), который также разработан с использованием C# .NET и виртуализированных (sandobx) с использованием Turbo Virtualization Studio. Все данные, которые должны быть записаны на компакт-диске, помещаются в одну папку (путь источника) на диске C.IMAPI: COMException Ошибка внутренней файловой системы [-1062555360]
После небольшой фрагмент кода: -
IStream stream = null;
try
{
System.Diagnostics.Debug.Print("Adding - " + thisFileItem.SourcePath);
if (thisFileItem.SourcePath != null)
Win32.SHCreateStreamOnFile(thisFileItem.SourcePath, Win32.STGM_READ | Win32.STGM_SHARE_DENY_WRITE, ref stream);
if (stream != null)
{
fileSystemImage.Root.AddFile(thisFileItem.DestPath + thisFileItem.DisplayName, stream);
}
}
finally
{
if (stream != null)
{
Marshal.FinalReleaseComObject(stream);
}
}
вызова метода "fileSystemImage.Root.AddFile" при добавлении test.exe бросает COMException -1062555360 "Произошла внутренняя ошибка файловой системы." Все остальные файлы добавляются и записываются правильно.
Сведения об исключении: -
COMException -1062555360
Internal file system error occurred.
at ImapiInterop.IFsiDirectoryItem.AddFile(String path, IStream fileData)
at ImapiImplementation.CDWriter.objBackgroundWorker_DoWork(Object sender, DoWorkEventArgs e) in C:\.........\CDWriter.cs:line 405
Если я кладу исходную папку на каком-то другом месте (Desktop или D диск), все написание процесса (в том числе TEST.EXE) происходит нормально без ошибок.
Я подозреваю, что проблема связана с вирусализацией, но не уверен. Пожалуйста, помогите.
-1062555360 == 0xC0AAB120 == IMAPI_E_IMAGE_SIZE_LIMIT == «Добавление имени файла» приведет к тому, что результат будет иметь размер, превышающий текущий установленный лимит ». IMAPI, конечно, ничего не знает о том, откуда появился файл. –