我如何从其路径获取文件输入流?

时间:2012-10-01 10:50:40

标签: c#

我有一个我想上传的文件的路径,但该方法接受文件输入Stream。

有人能告诉我如何从路径中获取输入流吗?

我在使用打开的文件对话框之前上传文件并将文件作为文件输入Stream,但是我的网页的新部分用户没有选择文件,我必须用代码抓住它,但我知道它的文件路径。

public string uploadfile(string token, string filenameP, DateTime modDate, HttpPostedFileBase file)
{
    //... code to upload file
}

我想要类似于Java中的ClassLoader。

请在此处查看此问题。

https://stackoverflow.com/a/793216/1479146

5 个答案:

答案 0 :(得分:6)

您可以将StreamWriter和StreamReader类用于此目的:

// for reading the file
using (StreamReader sr = new StreamReader(filenameP)) 
{
    //...
}

// for writing the file
using (StreamWriter sw = new StreamWriter(filenameP)) 
{
    //...
}

参考:http://msdn.microsoft.com/en-us/library/f2ke0fzy.aspx

答案 1 :(得分:3)

使用File.OpenRead(path) FileStream Class on Microsoft Docs

答案 2 :(得分:2)

public string uploadfile(string token, string filenameP, DateTime modDate, HttpPostedFileBase file)
        {
              using (StreamReader reader = new StreamReader(filenameP))
            {
                 //read from file here
            }
        }

P.S。不要忘记包含System.IO命名空间

编辑:System.IO中的流操作类正在包装Stream基类。 reader.BaseStream属性将为您提供该流。

答案 3 :(得分:0)

首先在您的文件上打开输入流

然后将该输入流传递给您的上传方法

例如:打开文件流

// Character stream writing
StreamWriter writer = File.CreateText("c:\\myfile.txt"); 
writer.WriteLine("Out to file."); 
writer.Close();

// Character stream reading
StreamReader reader = File.OpenText("c:\\myfile.txt"); 
string line = reader.ReadLine(); 
while (line != null) {
  Console.WriteLine(line); 
  line = reader.ReadLine(); 
} 
reader.Close();

答案 4 :(得分:0)

在C#中,获取Stream的方式(无论是输入还是输出): 使用Stream中的派生类,例如new FileStream(inputPath,FileMode.Open)