发送文件作为方法参数?

Posted

技术标签:

【中文标题】发送文件作为方法参数?【英文标题】:Sending A File As A Method Argument? 【发布时间】:2011-06-25 00:31:17 【问题描述】:

这种事情可能吗:

public static void DoThis(file aFile)
    //Blah blah blah

【问题讨论】:

是的,您可以使用流、字节[] 或路径。需要更多信息。 您的意思是文件名、文件数据、对打开文件流的引用? 你为什么不试试这个? O.o 当然可以。 除非你定义了一个名为file的类型,否则你会想要传递一个File类型的对象 【参考方案1】:

您可以传递的是文件句柄,即对文件对象或其二进制或文本格式的内容的引用。文件对象代表文件的处理程序,而不是实际的文件。

【讨论】:

C# 将允许您使用IntPtrSafeFileHandle 将句柄传递给文件。但是,这有点低级,主要仅对互操作有用。请参阅***.com/questions/3562513/… 进行讨论。【参考方案2】:

是的,你当然可以这样做。只记得检查空值....

public static void DoThis(file aFile)

    if ( aFile == null )  // report error or whatever 
    //Blah blah blah

【讨论】:

@Marc Gravell 一个“文件”类型的类的实例 @Muad'Dib:由于file 不是框架的一部分,你的回答让我觉得是在乞求问题。 @Brian OP 提供了参数,我使用的是他/她的代码。 @Muad'Dib:但是既然 OP 是在问,“这种事情可能吗?”您的回答没有提供有关如何使其成为可能的任何信息。如标题所示,OP 的基本问题是如何将文件作为方法参数发送。该代码是他希望使用的语法示例。 @Brian 并且 OP 并没有说它是 System.IO.File 或一些自定义类,他只是询问是否可能。而且,正如我们所知,确实如此。【参考方案3】:

这取决于你需要用它做什么:)

选项包括:

路径(字符串) 内容(字符串或字节[]) 内容的一些复杂对象模型(或您自己选择) 文件信息 FileStream(或只是 Stream) 某种读写器; TextReader、XmlWriter 等

【讨论】:

如果是发布的文件(来自 html 输入字段),您也可以将文件作为 HttpPostedFile 传递(其类在 System.Web.dll 中) 可能是每个选项的简短示例?【参考方案4】:

当然。如果你在调用方法中有文件引用,那你肯定可以这样做。

【讨论】:

以上是关于发送文件作为方法参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中使用 Alamofire 将参数作为正文发送到 PUT 方法

如何在 FastAPI 中将字典列表作为 Body 参数发送?

将二进制数据作为参数发送到 Web 服务中的方法?

如何将类作为方法的参数传递? [复制]

使用 jQuery getJson 发送列表/数组作为参数

为什么@GetMapping方法在发送响应时返回请求参数?