Tag:

ASP.NET C# – 在服务器上保存FileStream

我有初学者的问题。 如何将文件流保存到服务器上的文件?! 我懂了: var source = Request.QueryString[“src”]; WebClient webclient = new WebClient(); using (Stream stream = webclient.OpenRead(source)) { Bitmap iconbitmap = new Bitmap(System.Drawing.Image.FromStream(stream)); FileStream os = new FileStream(“./asdasdasd.ico”, FileMode.Create); var ic = MakeIcon(iconbitmap, 16, false); /// function returns an icon ic.Save(os); } 我的问题是当我在ASP.NET Development Server中运行代码时,它将“asdasdasd.ico”保存到:C:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ […]

将图像转换为字节并保存在Xml中

我需要将图像的byte []转换为可以保存在xml中的格式。 我试图转换为字符串,但没有工作。 保存5张图像后的xml文件大小约为50mb! 我需要转换为更简单的格式,这个xml文件不能太重。

c#文件读取并通过套接字发送

这是我使用NetworkStream发送文件的方式。 private void go() { byte[] send = File.ReadAllBytes(“example.txt”); ns.Write(send, 0, send.Length); } ns当然是一个NetworkStream 。 现在我想知道如何接收和读取传入的NetworkStream ? 我知道我需要指定一个缓冲区来读取这样的, ns.Read(buffer,0,buffer.length). 但哪个缓冲区应该在那里?

使用文件流写入字节通过控制台输出进度时出现内存不足

我有以下代码在写大文件时抛出内存不足exception。 有什么我想念的吗? 我不知道为什么它会丢失内存错误,因为我认为Filestream最多只会使用4096个字节的缓冲区? 我不完全确定缓冲区的含义是否诚实,任何建议都会受到赞赏。 public static async Task CreateRandomFile(string pathway, int size, IProgress prog) { byte[] fileSize = new byte[size]; new Random().NextBytes(fileSize); await Task.Run(() => { using (FileStream fs = File.Create(pathway,4096)) { for (int i = 0; i < size; i++) { fs.WriteByte(fileSize[i]); prog.Report(i); } } } ); } public static void p_ProgressChanged(object sender, int […]

C#位图图像,字节数组和流!

我有一个函数将文件提取到字节数组(数据)。 int contentLength = postedFile.ContentLength; byte[] data = new byte[contentLength]; postedFile.InputStream.Read(data, 0, contentLength); 后来我使用这个字节数组来构造一个System.Drawing.Image对象(其中data是字节数组) MemoryStream ms = new MemoryStream(data); Image bitmap = Image.FromStream(ms); 我得到以下exception“ArgumentException:参数无效。” 原始发布的文件包含500k jpeg图像… 任何想法为什么这不起作用? 注意:我向你保证我有一个有效的理由转换为字节数组然后转换为内存流!!

C#等价于file_get_contents(PHP)

作为(OAuthException)的后续(#15)您调用的方法必须使用app secret signed session调用我想知道file_get_contents()的等价物。 我尝试了以下但我illegal characters in path错误中得到了illegal characters in path 。 public ActionResult About() { var fb = new FacebookWebClient(FacebookWebContext.Current); var tokenUrl = “https://graph.facebook.com/oauth/access_token?client_id=” + FacebookWebContext.Current.Settings.AppId + “&client_secret=” + FacebookWebContext.Current.Settings.AppSecret + “&grant_type=client_credentials”; var objReader = new StreamReader(tokenUrl); string sLine = “”; var arrayList = new ArrayList(); while (sLine != null) { sLine = objReader.ReadLine(); […]

刷新日志到磁盘,在VerifyOSHandlePosition中例外

如何从C#服务编写日志文件,以便及时刷新到磁盘? 这是我尝试过的。 在记录代码中,我打开了一个这样的文件: var file = return File.Open(name, FileMode.Append, FileAccess.Write, FileShare.Read); var writer = new StreamWriter(file); 并写信给它: writer.WriteLine(msg); writer.Flush(); file.Flush(); 但是,日志未及时刷新到磁盘。 所以我尝试添加一个5秒计时器,这样做: [DllImport(“kernel32.dll”)] static extern bool FlushFileBuffers(IntPtr hFile); file.Flush(); var hdl = file.SafeFileHandle; FlushFileBuffers(hdl.DangerousGetHandle()); 这似乎有效,但在不经常的时间间隔我得到以下exception: System.IO.IOException: The OS handle’s position is not what FileStream expected. Do not use a handle simultaneously in one FileStream and […]

使用C#可以测试文件上是否存在锁定

背景:我使用偏移到文件和文件流锁定/解锁menthods来控制读/写访问。 我正在使用以下代码来测试当前是否在文件上保留了锁 try { fs.Lock( RESERVED_BYTE, 1 ); fs.Unlock( RESERVED_BYTE, 1 ); rc = 1; } catch { rc = 0; } 题: 我的目标是消除try / catch块。 有没有更好的方法来查看锁是否存在? 编辑: 注意:此问题与文件是否存在无关。 我已经知道了。 它是关于同步写访问。

BinaryReader.Dispose(bool disposing)创建一个对stream的本地引用。 为什么?

我在FCL代码中发现了一个不寻常的样本。 这是System.IO.BinaryReader中的方法: protected virtual void Dispose(bool disposing) { if (disposing) { Stream copyOfStream = m_stream; m_stream = null; if (copyOfStream != null && !m_leaveOpen) copyOfStream.Close(); } m_stream = null; m_buffer = null; m_decoder = null; m_charBytes = null; m_singleChar = null; m_charBuffer = null; } “copyOfStream”对执行逻辑有什么影响?

FileStream读/写方法的限制

FileStream的读/写方法只能取integer数值作为长度。 但FileStream对象返回的长度为long 。 在这种情况下,如果文件大小大于integer数值(大约超过2GB),该怎么办? 那么FileStream的读/写方法如何处理long值。