10

我有要上传的文件的路径,但该方法采用文件输入 Stream。

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

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

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

我想要类似 Java 中的 ClassLoader 之类的东西。

在这里看到这个问题。

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

4

5 回答 5

10

为此,您可以使用 StreamWrite 或 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

于 2012-10-01T10:59:12.943 回答
3

在 Microsoft Docs 上使用File.OpenRead(path) FileStream 类

于 2020-05-17T22:01:17.600 回答
2
public string uploadfile(string token, string filenameP, DateTime modDate, HttpPostedFileBase file)
        {
              using (StreamReader reader = new StreamReader(filenameP))
            {
                 //read from file here
            }
        }

PS 不要忘记包含 System.IO 命名空间

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

于 2012-10-01T10:59:40.073 回答
2

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

于 2016-01-29T09:51:31.573 回答
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();
于 2012-10-01T10:59:53.273 回答