2016-04-27 12 views
1

Ich schreibe CD/DVD mit IMAPI mit C# .NET Windows-Anwendung. Die Daten, die ich auf CD schreibe, enthalten eine ausführbare Datei (test.exe), die ebenfalls mit C# .NET und virtualisiert (Sandobx) mit Turbo Virtualization Studio entwickelt wurde. Alle Daten, die auf CD geschrieben werden sollen, werden in einem Ordner (Quellpfad) auf Laufwerk C abgelegt.IMAPI: COMException Interner Dateisystemfehler ist aufgetreten [-1062555360]

Nach kleinem Code-Schnipsel ist: -

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); 
    } 
} 

Aufruf zur "fileSystemImage.Root.AddFile" Verfahren unter Zugabe von test.exe wirft COMException -1062555360 "Internal aufgetreten Dateisystemfehler." Alle anderen Dateien fügen hinzu und schreiben richtig.

Ausnahmedetails: -

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 

Wenn ich meine Quellordner geschehen, ohne auf einem anderen Ort (Desktop-oder D-Laufwerk), alle Schreibprozess (einschließlich test.exe) Fehler in Ordnung bringen.

Ich vermute, dass das Problem aufgrund Virutalisierung aber nicht sicher ist. Bitte helfen.

+1

-1062555360 == 0xC0AAB120 == IMAPI_E_IMAGE_SIZE_LIMIT == "Das Hinzufügen von 'Dateiname' würde dazu führen, dass ein Ergebnisbild größer als der aktuell konfigurierte Grenzwert ist". IMAPI weiß natürlich nichts darüber, wo die Datei herkommt. –

Antwort

2

Die Fehlermeldung, die von IMAPI zurückgegeben wird, ist falsch, und deshalb alle Verwirrung. Siehe folgenden Link.

social.msdn.microsoft.com

Im Folgenden finden Sie den Text aus Antwort kopiert (von Dmitri) auf oben Ort: -

IMAPI unterstützt die ISupportErrorInfo Schnittstelle, und wir sind uns bewusst, das Problem der Fehler unpassende Nachrichten dein Szenario.

Intern erstellt IMAPI Rollback-Objekte zum Rückgängigmachen der Datei hinzufügen/entfernen Aktionen. Wir hatten ein Problem, bei dem die Rollbackaktion vorzeitig erstellt wurde. Nachdem der Rückkehrcode für IFsiDirectoryItem :: AddFile bereits festgelegt wurde, bestand die Rollbackaktion darin, die Datei aus dem Image zu entfernen. Da die Datei nicht hinzugefügt wurde, wurde eine Ausnahme IMAPI_E_FSI_INTERNAL_ERROR ausgelöst, die die IErrorInfo-Nachricht in die Nachricht geändert hat, die Sie sehen.

Uns ist dieses Problem bekannt, und es wird in der nächsten Version von IMAPI behoben werden. Leider ist es nicht schwer genug, in einem Hotfix behandelt werden.