问题标签 [filestream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
16002 浏览

c# - 如何使用 FileStream 在没有排他锁的情况下附加到文件?

FileStream在 C#/.NET 中尝试做的是打开两个流:一个附加到文件,另一个异步读取这些写入(用于单元测试一些网络连接处理代码)。我不知道如何让编写流以非独占锁定模式打开文件,因此代码总是抛出异常:

该进程无法访问文件“C:\test.txt”,因为它正被另一个进程使用。

这是演示该问题的少量代码:

0 投票
3 回答
6730 浏览

c# - 在 C# 中将 short[] 数组写入文件的最佳方法是什么?

我有一个短裤数组(short []),我需要写出一个文件。最快的方法是什么?

0 投票
1 回答
1530 浏览

c# - 正如进程监视器所观察到的,写入 FileStream 的行为很奇怪

我正在使用 FileStream 写入文件,并使用Process Monitor观察底层系统调用。我在生产部署中遇到了一些文件锁定问题,因此我正在仔细查看细节。

此示例代码:

导致以下系统调用:

前三个 IO 调用是预期的(创建、写入、关闭),但该过程继续读取文件十几次并反复打开和关闭它。

我现在在 Win XP SP2 和 Win 2003 x64 上观察到了这种行为。但是,我家中的 Windows Vista 机器的行为与预期一样(仅前三行)。

关于为什么在非 Vista 运行时发生这种情况的任何线索?

0 投票
1 回答
8283 浏览

c# - 如何正确打开 FileStream 以与 XDocument 一起使用

我想使用 Linq2XML 将一些节点附加到 xml 文档中。有问题的文件正在被其他进程使用,他们应该能够在我更新文件时读取文件。所以我想出了这个解决方案,这显然不是正确的方法(方法 doc.Save() 失败并说另一个进程正在使用该文件):

非常感谢任何帮助。

0 投票
2 回答
4151 浏览

c# - 我可以使用 MediaPlayer 播放流中的声音吗?或者,我可以使用 URI 来访问文件流吗?

System.Windows.Media.MediaPlayer用来播放一些声音,我想从 ZIP 文件中加载这些声音。如果能够直接从 zip 文件中将这些文件作为流加载,而不必解压缩到临时目录,那就太好了。但是,MediaPlayer.open只接受一个 URI。

那么,有没有办法创建一个引用流内容的 URI?类似于内存中的本地主机?是否有从 Stream 到 URI 的连接器?

0 投票
2 回答
622 浏览

sql-server-2008 - sql server 2008的文件流

SQL Server 2008 的 FILESTREAM 功能允许使用 SQL Server 2008 和 NTFS 文件系统的组合来存储和高效访问 BLOB 数据。

当在包含具有 filestream 属性的 varbinary 列的表上插入一行时,文件(数据)直接存储在文件系统上并分配新名称(例如 00000016-00000079-0006)。

是否有任何 TSQL API 可以检查文件系统上的哪个文件与特定行相关联?

0 投票
7 回答
18618 浏览

c# - 如何确保所有数据都已物理写入磁盘?

我了解 .NET FileStream 的 Flush 方法仅将当前缓冲区写入磁盘,但取决于 Windows 的磁盘驱动程序和硬盘固件,这不能保证数据实际上是物理写入磁盘的。

有没有 .NET 或 Win32 方法可以给我这个保证?所以如果在调用这个方法回来后一纳秒掉电,我仍然可以确定一切正常吗?

0 投票
2 回答
1396 浏览

c# - Completely overwriting a file with Velocity / NVelocity

I am trying to use NVelocity templates in a .Net application: using a template to output results to a file. It all seems to work fine except for the fact that the output is never fully overwritten. If my file is 100 characters long and the template only renders 20 characters, the last 80 characters are never altered!

Code sample:

So if my template outputs AAAA and the file already contains BBBBBBBB then at the end, the file contains AAAABBBB at the end of the op.

Any clue how I can get it to fully overwrite the file? - e.g. in the above example the final output should be AAAA. Not too sure whether this is just pure stream-related stuff - but I haven't had this problem before with filestreams.

Happy to write a reset method, or just output to a memorystream and overwrite the file, but I would like to get it working like this if possible! **EDIT:'' got it working by calling

when I open the file. But would appreciate knowing if there was a better way!

0 投票
3 回答
3203 浏览

c# - C# 使用 FileStream 读取“Zip”文件

我编写了一个程序,该程序将使用 TCPClient 建立与远程计算机的网络连接,我正在使用它将 100k 块中的文件传输到远程 .net 应用程序,然后将它们写入硬盘驱动器。除了 ZIP 文件之外,所有文件传输都运行良好 - 奇怪的是,重新组合的文件始终为 98K ...... ZIP 文件是否存在一些不为人知的秘密,以防止以这种方式处理它们。同样,所有其他文件传输工作正常,图像、xls、txt、chm、exe 等。

使困惑

0 投票
7 回答
2322 浏览

c# - 处理大型下载网站的最佳方式?

我目前有一个基于 .net 的学校下载站点。我们提供防病毒、autocad、spss、office 和大量大型应用程序供学生下载。当前设置为以 2 种方式中的 1 种方式处理它们;任何超过 800 megs 的内容都可以通过单独的网站直接访问,而低于 800 megs 的内容则通过使用文件流以 10,000 字节块的形式提供给用户的 .net 代码进行保护。我在以这种方式提供下载时遇到各种问题......我希望能够保护大型下载,但是 .net 站点无法处理它,并且较小的文件经常会失败。有更好的方法吗?

编辑 - 我只是想更新我最终如何解决这个问题:我最终将我的下载目录添加为 iis 中的虚拟目录并指定了自定义 http 处理程序。处理程序从请求中获取文件名并基于此检查权限,然后将用户重定向到错误/登录页面,或者让下载继续。我对这个解决方案没有任何问题,而且我已经使用它大概 7 个月了,提供了几个演出大小的文件。