从内存中读取文件的第一行

时间:2010-08-24 16:08:44

标签: c# file text

我有一个制表符分隔的文本文件,我需要将其上传到安全文件夹,以便SSIS导入SQL Server。该文件将由外部用户通过网络应用程序上传。

我的挑战是,在允许我将其转到安全文件夹之前,我需要检查此文件中的某些内容。即我需要确保用户有一个特定的列。

如果我将文件保存到网络应用程序中的文件夹,我可以这样做。但是,文件中数据的性质使我们不希望将此文件放在安全文件夹以外的任何位置。我也不能将它直接放在这个文件夹中,因为SSIS包设置为在文件显示时立即触发。

我需要做的是找到一种方法(如果有的话)解析内存中的文件,如果它通过了所有检查,则将其上传到安全文件夹。

我正在使用C#.NET和FileUpload Control。

到目前为止,我的搜索包含了所有类型的信息,但它们都需要先将文件保存到某处,然后再使用它。

非常感谢你的时间。如果有人能指出我可以查看的对象或代码,我将非常感激。

1 个答案:

答案 0 :(得分:6)

不是调用SaveAs,而是使用FileContent属性以Stream的形式访问文件的内容,然后您可以在手动保存之前执行任何必要的处理。< / p>

例如,像这样:

string data;

using(StreamReader reader = new StreamReader(fileUpload.FileContent))
{
    data = reader.ReadToEnd();
}

data变量现在包含文件的内容为字符串。您可以执行任何您喜欢的处理,然后将其保存(或不保存)到适当的位置。