发送文件作为方法参数?
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# 将允许您使用IntPtr
或SafeFileHandle
将句柄传递给文件。但是,这有点低级,主要仅对互操作有用。请参阅***.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 方法