Заставить несколько вещей с этим кодом
Приветствие. Я новичок в программировании, поэтому некоторые проблемы, с которыми я сталкиваюсь, могут быть довольно легкими для некоторых из вас. Я пытаюсь сделать простой инструмент, который берет экспортированный файл и читает данные о ценах в файле. но сначала мне нужно иметь возможность импортировать файл, который в данный момент находится в \Marketlogs. Все файлы в формате.txt. Я получил его для работы с заданным именем, но я не нашел способа импортировать неизвестное имя. Вот пример имени файла, которое он может вытянуть "Esoteria-Liquid Ozone-2019.05.04 015804"
Я следил за видео YouTube на IAmTimCorey за основной идеей, как читать файлы, но он использует фиксированное имя файла для своих видео
https://www.youtube.com/watch?v=cST5TT3OFyg&list=PLsBhi5lzz1f2-AbhurnGazN68UgG4dVwt&index=1
https://www.youtube.com/watch?v=yClSNQdVD7g&list=PLsBhi5lzz1f2-AbhurnGazN68UgG4dVwt&index=2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Windows;
namespace Eve_market
{
class Program
{
static void Main(string[] args)
{
/// MarketLog
// opens a file from MarketLogs
``` string filePath = @"E:\Users\Hamilton Norris\Documents\EVE\logs\Marketlogs\"; ```
// converts file to a readable csv from text with filteable deta
List<MarketLog> log = new List<MarketLog>();
List<string> lines = File.ReadAllLines(filePath).ToList();
foreach (string line in lines)
{
string[] enteries = line.Split(',');
MarketLog newMarketLog = new MarketLog();
newMarketLog.Price = enteries[0];
newMarketLog.VolReamining = enteries[1];
newMarketLog.TypeID = enteries[2];
newMarketLog.Range = enteries[3];
newMarketLog.OrderID = enteries[4];
newMarketLog.VolEntered = enteries[5];
newMarketLog.MinVolume = enteries[6];
newMarketLog.Bid = enteries[7]; // False = sell order true = buy order
newMarketLog.IssueDate = enteries[8];
newMarketLog.Bidurationd = enteries[9];
newMarketLog.StationID = enteries[10];
newMarketLog.RegionID = enteries[11];
newMarketLog.SolarSystemID = enteries[12];
newMarketLog.Jumps = enteries[13]; // 0 = same system
log.Add(newMarketLog);
}
foreach (var MarketLog in log)
{
Console.WriteLine($"{ MarketLog.Price } {MarketLog.VolReamining } {MarketLog.Bid} ");
}
// MarketLog End
Console.ReadLine();
}
}
}
1 ответ
Пожалуйста, попробуйте следующий код: (получите каталог, а затем получите файлы, имеющие соответствующий шаблон файла. Затем загрузите один за другим и используйте свой код, как обычно, для чтения файлов)
var fileNamePattern = "*.txt";
var dir = new DirectoryInfo(path);
IEnumerable<FileSystemInfo> files = dir.GetFileSystemInfos(fileNamePattern);
files
.ToList()
.ForEach(f=>
{
//Load each file using File system Info:
List<string> lines = File.ReadAllLines(f.FullName).ToList();
//............
});