FileManager: separate generic from Libation-specific
This commit is contained in:
parent
1de7edd9df
commit
c43e03b228
37 changed files with 87 additions and 76 deletions
39
LibationFileManager/FileTypes.cs
Normal file
39
LibationFileManager/FileTypes.cs
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
namespace LibationFileManager
|
||||
{
|
||||
public enum FileType { Unknown, Audio, AAXC, PDF, Zip, Cue }
|
||||
|
||||
public static class FileTypes
|
||||
{
|
||||
private static Dictionary<string, FileType> dic => new()
|
||||
{
|
||||
["aaxc"] = FileType.AAXC,
|
||||
["cue"] = FileType.Cue,
|
||||
["pdf"] = FileType.PDF,
|
||||
["zip"] = FileType.Zip,
|
||||
|
||||
["aac"] = FileType.Audio,
|
||||
["flac"] = FileType.Audio,
|
||||
["m4a"] = FileType.Audio,
|
||||
["m4b"] = FileType.Audio,
|
||||
["mp3"] = FileType.Audio,
|
||||
["mp4"] = FileType.Audio,
|
||||
["ogg"] = FileType.Audio,
|
||||
};
|
||||
|
||||
public static FileType GetFileTypeFromPath(string path)
|
||||
=> dic.TryGetValue(Path.GetExtension(path).ToLower().Trim('.'), out var fileType)
|
||||
? fileType
|
||||
: FileType.Unknown;
|
||||
|
||||
public static List<string> GetExtensions(FileType fileType)
|
||||
=> dic
|
||||
.Where(kvp => kvp.Value == fileType)
|
||||
.Select(kvp => kvp.Key)
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue