我正在制作一个应用程序,它需要同时打开至少676个文件到最多1400个文件.我将使用StreamWriter
Class 写入这些文件并使用Class读取数据StreamReader
.因此,对于可以同时打开以便在C#中读取或写入的文件的最大限制,就像VC++一样,如下面的链接所述.
Windows中打开文件的数量是否有限制.
.NET打开的文件的上限受Win32 API CreateFile强加的限制,即16384.
这对我有用:
var streams = new Stream[10000]; for (var i = 0; i < streams.Length; i++) { streams[i] = File.OpenWrite(Path.Combine(Path.GetTempFileName())); streams[i].WriteByte((byte)'A'); } var tasks = new Task[streams.Length]; for (var i = 0; i < streams.Length; i++) { var index = i; tasks[i] = new Task(() => { streams[index].WriteByte((byte)'B'); }); tasks[i].Start(); } Task.WaitAll(tasks); for (var i = 0; i < streams.Length; i++) { streams[i].Close(); }