public KlineArrayFile(string path, KlineArrayInfo info) { DownloadingPath = path ?? throw new ArgumentNullException(nameof(path)); var chunks = path.Split(KlineArrayFileConstants.DownloadingFileExtension, StringSplitOptions.None); if (chunks.Length > 2) { throw new ArgumentException($"Not supported: more than one '{KlineArrayFileConstants.DownloadingFileExtension}' in the path"); } CompletePath = path.Replace(KlineArrayFileConstants.DownloadingFileExtension, ""); PartialPath = path.Replace(KlineArrayFileConstants.DownloadingFileExtension, KlineArrayFileConstants.PartialFileExtension); var dir = Path.GetDirectoryName(path); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } //int buffer = 256 * 1024; //bool useAsync = false; //FileStream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None, buffer, useAsync); FileStream = File.Open(path, FileMode.Create); Info = info; }
public string GetFileName(KlineArrayInfo info, KlineArrayFileOptions?options = null) { var sb = new StringBuilder(); if (info.Start.Day == 1 && info.EndExclusive.Day == 1 && info.EndExclusive.Month == info.Start.Month + 1 && info.Start.Year == info.EndExclusive.Year) { sb.Append(info.Start.ToString("yyyy.MM")); } else if ( info.Start.Day == 1 && info.EndExclusive.Day == 1 && info.Start.Month == 1 && info.EndExclusive.Month == 1 && info.EndExclusive.Year == info.Start.Year + 1) { sb.Append(info.Start.ToString("yyyy")); } else { AppendFileNameTimeString(info.Start, sb); sb.Append(" - "); AppendFileNameTimeString(info.EndExclusive, sb); } sb.Append(KlineArrayFileConstants.DownloadingFileExtension); // Always append this here and strip it out later return(sb.ToString()); }
public string GetPath(string exchange, string exchangeArea, string symbol, TimeFrame timeFrame, KlineArrayInfo info, KlineArrayFileOptions?options = null) => Path.Combine(GetDataDir(exchange, exchangeArea, symbol, timeFrame), GetFileName(info, options)) + options?.FileExtension;