2
Я использую элемент управления загрузкой ASP.Net, чтобы позволить пользователям загружать файл с разделителями табуляции с расширением txt.Независимо от того, загружен ли файл в формате с табуляцией
Как я могу убедиться в том, что файл имеет разделитель табуляции? Я использую C#.
В настоящее время я использую следующий код.
StreamReader stream = null;
if (FileUpload1.HasFile)
{
if (FileUpload1.FileName.EndsWith("txt"))
{
string filename = Path.Combine(Server.MapPath("~/files"), Guid.NewGuid().ToString() + ".txt");
FileUpload1.PostedFile.SaveAs(filename);
Session["UploadedFileName"] = filename;
stream = new StreamReader(FileUpload1.PostedFile.InputStream);
}
else
{
lblMessage.Text = "File format not supported. Please use a tab delimited .txt file.";
pnlMessage.Visible = true;
return;
}
}
else
{
lblMessage.Text = "You must select a file to upload.";
pnlMessage.Visible = true;
return;
}
Я не уверен, что это возможно. Если вы не найдете никаких вкладок в файле, возможно, это будет означать, что файл не тот, который вы ожидаете, но, возможно, это означает, что для каждой колонки есть только один столбец. Если вы найдете несколько вкладок в каждой строке, как вы узнаете, действительно ли это в нужном формате? Теперь, если вы скажете, что ожидаете в столбцах _n_ не более _x_ символов в каждом столбце, вы получите что-то, что вы могли бы проверить. –
Как отметил @MichaelTodd, нет истинного способа узнать. Лучшее, на что вы можете надеяться, это сделать класс-оболочку для того, что вы ожидаете, и проанализировать файл, значение по значению. – seekerOfKnowledge
Если вам понадобится файл с разделителями-запятыми, расширение .csv, сможете ли вы проверить, действительно ли он разделен запятой? –