示例#1
0
    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;
    }
示例#2
0
    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());
    }
示例#3
0
 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;