почему-то кажется File.ReadAllLines имеет сверхъестественную проблему, конвертирующую все даты с yyyy/mm/dd в yy/mm/dd.Дата выпуска с C# File.ReadAllLines()
Проблема в том, что я работаю с историческими данными, которые могут отбросить все прошло до 1901 года, что вызвало проблему с сокращенной датой записи.
public static string[] readFileToStringArray(string filePath = null, string fileName = null)
{
string[] lines = null;
if (File.Exists(filePath + fileName))
{
//lines = File.ReadAllLines(filePath + fileName);
lines = File.ReadAllLines(filePath + fileName, Encoding.UTF8);
string unescape = String.Empty;
List<string> thisCSV = new List<string>();
foreach (string line in lines)
{
unescape = line.Replace("\"", "");
thisCSV.Add(unescape);
}
lines = thisCSV.ToArray();
}
return lines;
}
Weird вещь он не делает это ко всем файлам, у меня есть несколько запуска этого сценария. Затем я проверил физический файл, и все в порядке.
Это действительный CSV, все инкапсулируется как текст.
Любая идея, как отрицать это, как исправление весь набор данных в памяти/поток может быть и речи? уже проверен MSDN, но никакой помощи нет.
Единственный другой код, задействованный в этой точке, является вспомогательным методом, но не имеет значения, поскольку единственное, что он делает, это создать список имен файлов.
public static List<string> GetFilesinDirectory(string filesPath)
{
List<string> files = new List<string>();
string physicalFilesPath = (string)HttpContext.Current.Server.MapPath(filesPath);
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(physicalFilesPath);
foreach (var file in dir.GetFiles())
{
string thisfile = physicalFilesPath + "\\" + (string)file.Name;
files.Add(thisfile);
}
return files;
}
Благодаря
readalllines не делает ничего особенного, а затем читает строки, закрывает глаза и дает вам данные как есть. Проверьте http://referencesource.microsoft.com/#mscorlib/system/io/file.cs,8d10107b7a92c5c2. – user734028
@ user734028 благодарю вас за ссылку, именно мои мысли, поэтому это так странно, что вы можете видеть из моих скриншотов значение даты, искаженное. Единственный другой исполняемый код - это метод массового файла get._ – LokizFenrir
точно мой вопрос, это не должно происходить (когда-либо), и, следовательно, мой вопрос, на данный момент это очень простое приложение, с очень простой csv (4937 строк едва царапины). – LokizFenrir