FileFormat — Aspose.3D FOSS for .NET
Example
Example FileFormat class är ett register över alla stödda 3D-filformat. Det finns inga offentliga namngivna konstanter för enskilda format — formatinstanser erhålls vid körning via de statiska upptäcktsmetoderna eller den Formats samlingen.
Formatregister
Stödjade format registreras internt. Använd följande API för att komma åt dem:
| Example | Example | Example |
|---|---|---|
FileFormat.Formats | IList<FileFormat> | Alla registrerade formatinstanser |
FileFormat.Detect(string filePath) | FileFormat | Detekterar format från en filsökväg (baserat på filändelse och innehåll) |
FileFormat.GetFormatByExtension(string ext) | FileFormat | Returnerar formatet för en given filändelse (t.ex. ".obj") |
Registrerade format inkluderar: OBJ, STL, glTF/GLB, FBX, COLLADA, PLY och 3MF.
Example
| Example | Returtyp | Example |
|---|---|---|
Detect(string filePath) | FileFormat | Detekterar formatet från en filsökväg |
GetFormatByExtension(string ext) | FileFormat | Returnerar formatet som matchar filändelsen |
CreateLoadOptions() | LoadOptions | Returnerar laddningsalternativ som är lämpliga för denna formatinstans |
CreateSaveOptions() | SaveOptions | Returnerar sparalternativ som är lämpliga för denna formatinstans |
Anmärkning om CreateLoadOptions() / CreateSaveOptions(): Dessa metoder fungerar korrekt när anropas på formatinstanser som returneras av Detect() eller GetFormatByExtension() — varje registrerad format åsidosätter dessa metoder med sin egen implementation. Att anropa dem på en rå basklass FileFormat instans (inte erhållen via registret) kastar NotImplementedException.
Example
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
// Detect format from a file path
var format = FileFormat.Detect("model.obj");
Console.WriteLine(format.Extension); // ".obj"
// Get load options from the detected format instance
var loadOpts = format.CreateLoadOptions(); // returns ObjLoadOptions via polymorphism
// Load and save — format inferred from extension
var scene = new Scene();
scene.Open("model.obj");
scene.Save("output.glb"); // binary GLB inferred from .glb extension
// Enumerate all registered formats
foreach (var fmt in FileFormat.Formats)
Console.WriteLine($"{fmt.Name}: import={fmt.CanImport}, export={fmt.CanExport}");