Fixes for batch bflim
This commit is contained in:
parent
5e0790ab8e
commit
7ad04eedad
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -194,7 +194,7 @@ namespace FirstPlugin
|
|||||||
|
|
||||||
OpenFileDialog ofd = new OpenFileDialog();
|
OpenFileDialog ofd = new OpenFileDialog();
|
||||||
ofd.Multiselect = true;
|
ofd.Multiselect = true;
|
||||||
ofd.Filter = Utils.GetAllFilters(typeof(BFLIM));
|
ofd.Filter = Utils.GetAllFilters(new Type[] { typeof(BFLIM), typeof(SARC) });
|
||||||
|
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
@ -203,7 +203,7 @@ namespace FirstPlugin
|
|||||||
{
|
{
|
||||||
foreach (string file in ofd.FileNames)
|
foreach (string file in ofd.FileNames)
|
||||||
{
|
{
|
||||||
var FileFormat = STFileLoader.OpenFileFormat(file);
|
var FileFormat = STFileLoader.OpenFileFormat(file, new Type[] { typeof(BFLIM), typeof(SARC) });
|
||||||
if (FileFormat == null)
|
if (FileFormat == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -220,7 +220,7 @@ namespace FirstPlugin
|
|||||||
{
|
{
|
||||||
foreach (var file in ((SARC)FileFormat).Files)
|
foreach (var file in ((SARC)FileFormat).Files)
|
||||||
{
|
{
|
||||||
var archiveFile = STFileLoader.OpenFileFormat(file.FullName, file.Data);
|
var archiveFile = STFileLoader.OpenFileFormat(file.FullName, new Type[] { typeof(BFLIM) , typeof(SARC) }, file.Data);
|
||||||
if (archiveFile == null)
|
if (archiveFile == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -1,5 +1,6 @@
|
|||||||
using Syroot.BinaryData;
|
using Syroot.BinaryData;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System;
|
||||||
using System.IO.Compression;
|
using System.IO.Compression;
|
||||||
using OpenTK;
|
using OpenTK;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
@ -29,6 +30,45 @@ namespace Switch_Toolbox.Library.IO
|
|||||||
else
|
else
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IFileFormat OpenFileFormat(string FileName, Type[] FileType, byte[] data = null)
|
||||||
|
{
|
||||||
|
Stream stream;
|
||||||
|
if (data != null)
|
||||||
|
stream = new MemoryStream(data);
|
||||||
|
else
|
||||||
|
stream = File.OpenRead(FileName);
|
||||||
|
|
||||||
|
foreach (IFileFormat fileFormat in FileManager.GetFileFormats())
|
||||||
|
{
|
||||||
|
foreach (Type type in FileType)
|
||||||
|
{
|
||||||
|
if (fileFormat.GetType() == type)
|
||||||
|
return OpenFileFormat(FileName, data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IFileFormat OpenFileFormat(string FileName, Type FileType, byte[] data = null)
|
||||||
|
{
|
||||||
|
Stream stream;
|
||||||
|
if (data != null)
|
||||||
|
stream = new MemoryStream(data);
|
||||||
|
else
|
||||||
|
stream = File.OpenRead(FileName);
|
||||||
|
|
||||||
|
foreach (IFileFormat fileFormat in FileManager.GetFileFormats())
|
||||||
|
{
|
||||||
|
if (fileFormat.GetType() == FileType)
|
||||||
|
return OpenFileFormat(FileName, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the <see cref="IFileFormat"/> from a file or byte array.
|
/// Gets the <see cref="IFileFormat"/> from a file or byte array.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -194,6 +194,28 @@ namespace Switch_Toolbox.Library
|
|||||||
return Guid.NewGuid().ToString();
|
return Guid.NewGuid().ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string GetAllFilters(Type[] Types)
|
||||||
|
{
|
||||||
|
string Filter = "All Supported Files|";
|
||||||
|
List<string> FilterEach = new List<string>();
|
||||||
|
foreach (var type in Types)
|
||||||
|
{
|
||||||
|
Object instance = Activator.CreateInstance(type);
|
||||||
|
|
||||||
|
IFileFormat f = (IFileFormat)instance;
|
||||||
|
for (int i = 0; i < f.Extension.Length; i++)
|
||||||
|
{
|
||||||
|
Filter += $"{f.Extension[i]};";
|
||||||
|
FilterEach.Add($"{f.Description[0]} ({f.Extension[i]}) |{f.Extension[i]}|");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Filter += "|";
|
||||||
|
Filter += string.Join("", FilterEach.ToArray());
|
||||||
|
Filter += "All files(*.*)|*.*";
|
||||||
|
return Filter;
|
||||||
|
}
|
||||||
|
|
||||||
public static string GetAllFilters(Type type)
|
public static string GetAllFilters(Type type)
|
||||||
{
|
{
|
||||||
Object instance = Activator.CreateInstance(type);
|
Object instance = Activator.CreateInstance(type);
|
||||||
@ -244,5 +266,10 @@ namespace Switch_Toolbox.Library
|
|||||||
Filter += "All files(*.*)|*.*";
|
Filter += "All files(*.*)|*.*";
|
||||||
return Filter;
|
return Filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void AddCompressionExtensions()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user