Files
2026-04-17 14:55:32 -04:00

108 lines
3.0 KiB
C#

using DTS.Common.Import.ImportOptions;
using System;
using System.IO;
using System.Linq;
namespace DTS.Common.Import
{
public class CSVFile
{
private readonly string _filename;
public CSVFile(string filename)
{
_filename = filename;
}
public static bool IsInUse(string filename)
{
if (!string.IsNullOrEmpty(filename))
{
try
{
_ = File.ReadAllLines(filename);
return false;
}
catch (IOException)
{
return true;
}
catch (Exception)
{
//We can supress this exception since we are interested in IOException only
}
}
return true;
}
//FB 40598 check the format of csv and determine if is test setup or not
public static bool IsCSVFileForTestSetupImport(string filename, CsvImportOptions csvImportOptions)
{
try
{
using (var csvReader = CsvUtil.CreateCsvReader(filename))
{
var tokens = CsvUtil.ReadFields(csvReader);
if (tokens != null && tokens[0] == "Version")
{
return true;
}
}
}
catch
{
// return false later
}
return false;
}
//FB 43815 Get the CSV file version
public static int GetCsvVersion(string filename)
{
try
{
using (var csvReader = CsvUtil.CreateCsvReader(filename))
{
var tokens = CsvUtil.ReadFields(csvReader);
if (tokens != null && tokens[0] == "Version")
{
var tokens2 = CsvUtil.ReadFields(csvReader);
if (tokens2 != null)
{
var version = Convert.ToInt32(tokens2[0]);
return version;
}
}
return 0;
}
}
catch
{
return 0;
}
}
public int LineCount
{
get
{
var count = 0;
if (!string.IsNullOrEmpty(_filename))
{
string[] lines;
try
{
lines = File.ReadAllLines(_filename);
return lines.Count();
}
catch (Exception)
{
return count;
}
}
return count;
}
}
}
}