草庐IT

c# - 从 shell 运行的 ffmpeg 运行正常,但在 .NET 中调用时运行不正常

我正在尝试在C#程序中使用ffmpeg(在Windows上使用Cygwin编译),方法是使用Process类生成一个ffmpeg实例。但是,我遇到了一个没有多大意义的相当奇怪的错误。当我直接从shell(无论是Cygwin的bash、PowerShell、cmd)运行ffmpeg时,ffmpeg可以正确地解码和重新编码文件而不会出现任何问题:PSC:\audio>ffmpeg-i.\sound1.wav-acodeclibvorbis-foggabc.oggffmpegversion1.2Copyright(c)2000-2013theFFmpegdevelopersbuiltonAp

c# - 当 Stream.Read() 存在时,StreamReader 的目的是什么?

这一直困扰着我。我知道Stream是一个抽象类,因此无法实例化,但它具有从中派生的类。为什么有StreamReader类和Stream.Read()方法(反之亦然StreamWriter和Stream.Write())?您可以使用300万种不同的方法写入一个文本文件,而试图在System.IO命名空间中了解所有这些不同的类型和方法是相当令人沮丧的。我找到了关于编写者和读者对象之间的差异或派生流对象本身的问题和答案,但没有找到关于这种特殊情况的问题和答案。 最佳答案 TextReader(StreamReader派生自)处理字符串。S

c# - 谁应该负责关闭流

我正在编写一个创建文件“目录”的应用程序,这些文件可以与其他元数据文件(例如附件和缩略图)一起归属。我正在尝试将目录的接口(interface)抽象到目录的消费者不需要了解用于存储文件的底层文件系统的程度。所以我创建了一个名为IFileSystemAdaptor的接口(interface),如下所示。publicinterfaceIFileSystemAdaptor:IDisposable{voidWriteFileData(stringfileName,Streamdata);StreamReadFileData(stringfilename);voidDeleteFileData(

c# - C# : How to get the response stream? 中的套接字

我正在尝试替换它:voidProcessRequest(objectlistenerContext){varcontext=(HttpListenerContext)listenerContext;UriURL=newUri(context.Request.RawUrl);HttpWebRequest.DefaultWebProxy=null;HttpWebRequesthttpWebRequest=(HttpWebRequest)WebRequest.Create(URL);httpWebRequest.Method=context.Request.HttpMethod;httpWe

c# - 在 C# 中获取套接字对象的流

我有一个通过TCP/IP通信的客户端-服务器应用程序。我使用System.Net.Sockets.Socket类型对象通过TCP进行异步通信。基本上我打开连接发送/接收数据并关闭连接。而我的实现是基于Socket类型的对象。现在我需要使用第三方dll来做一些事情。此dll需要一个System.IO.Stream类型的对象。所以我需要获取我的Socket对象的Stream对象。我该怎么做?谢谢。 最佳答案 真的很简单。NetworkStream类的构造函数接受要包装的套接字:http://msdn.microsoft.com/en-u

c# - TcpClient.GetStream().DataAvailable 返回 false,但流有更多数据

因此,阻塞的Read()似乎可以在完成接收所有发送给它的数据之前返回。反过来,我们用一个循环包装Read(),该循环由相关流中的DataAvailable值控制。问题是您可以在此while循环中接收更多数据,但没有后台处理继续让系统知道这一点。我在网上找到的大多数解决方案都不适用于我。我最终做的是作为我循环的最后一步,我在从流中读取每个block后执行一个简单的Thread.Sleep(1)。这似乎让系统有时间更新,我没有得到准确的结果,但这似乎有点老套,而且对于解决方案来说有点“间接”。以下是我正在处理的情况的列表:IIS应用程序和独立应用程序之间的单个TCP连接,两者都是用C#编写

c# - 错误 (HttpWebRequest) : Bytes to be written to the stream exceed the Content-Length bytes size specified

我似乎无法弄清楚为什么我不断收到以下错误:BytestobewrittentothestreamexceedtheContent-Lengthbytessizespecified.在以下行:writeStream.Write(bytes,0,bytes.Length);这是一个Windows窗体项目。如果有人知道这里发生了什么,我肯定会欠你一个。privatevoidPost(){HttpWebRequestrequest=null;Uriuri=newUri("xxxxx");request=(HttpWebRequest)WebRequest.Create(uri);request

c# - 从 http 地址读取 XML 文件

我需要使用c#/.net从这样的源读取xml文件:https://10.1.12.15/xmldata?item=all这基本上只是一个xml文件。StreamReader不喜欢那样。阅读该链接内容的最佳方式是什么?文件看起来像这样:--CZ325000123ProLiantDL380pGen8BBBBBBGGGGHHHJJJJ10000-000-222-22222-333333333333-... 最佳答案 您需要使用LINQtoXML处理XML文件。XDocument.LoadMethod支持从URI加载XML文档:vardoc

c# - 为什么处理 StreamReader 会使流不可读?

这个问题在这里已经有了答案:CanyoukeepaStreamReaderfromdisposingtheunderlyingstream?(9个回答)关闭7年前。我需要从头到尾读取流两次。但是下面的代码抛出一个ObjectDisposedException:Cannotaccessaclosedfile异常。stringfileToReadPath=@"";using(FileStreamfs=newFileStream(fileToReadPath,FileMode.Open)){using(StreamReaderreader=newStreamReader(fs)){strin

c# - StreamReader 和 StreamWriter 在同一个 Stream 上?

如何关闭使用相同底层流的StreamReader和StreamWriter?varstream=/*...*/;varreader=newStreamReader(stream);varwriter=newStreamWRiter(stream);我知道我可以简单地忽略关闭读取器/写入器并关闭底层流。然而,这似乎有点hack,因为它是基于这样的假设,即读者/作者没有任何东西可以处理(将来可能不会是这种情况)。我知道这已在.NET4.5中通过额外的构造函数参数得到解决,但在.NET4.5发布之前,我该如何以正确的方式解决它? 最佳答案