edjournal/PlayerJournal.cs

67 lines
1.8 KiB
C#
Raw Normal View History

2021-08-25 18:24:44 +02:00
using System;
using System.Linq;
2021-08-25 18:24:44 +02:00
using System.Collections.Generic;
using System.IO;
namespace EDJournal {
public class PlayerJournal {
public static string DefaultPath = "%UserProfile%\\Saved Games\\Frontier Developments\\Elite Dangerous";
private List<JournalFile> journalfiles = new List<JournalFile>();
private string basepath = null;
public string Location => basepath;
public PlayerJournal() {
Initialise(DefaultPath);
}
public PlayerJournal(string path) {
Initialise(path);
}
private void Initialise(string path) {
basepath = Environment.ExpandEnvironmentVariables(path);
ScanFiles();
2021-08-25 18:24:44 +02:00
}
public List<JournalFile> Files {
get { return journalfiles; }
}
public void Open() {
if (!Directory.Exists(basepath)) {
throw new JournalException("Invalid base path, path could not be found");
}
this.ScanFiles();
}
public JournalFile GetLastFile() {
var lastfile = Files
.OrderBy(x => x.DateTime)
.Last()
;
return lastfile;
}
2021-08-25 18:24:44 +02:00
public void ScanFiles() {
var files = Directory.EnumerateFiles(basepath);
journalfiles.Clear();
foreach (var file in files) {
string full = Path.Combine(basepath, file);
try {
JournalFile journalfile = new JournalFile(full);
journalfiles.Add(journalfile);
} catch (JournalException) {
/* invalid journal file, or one of the other json files in there */
continue;
}
}
journalfiles.Sort();
}
}
}