可以在C#中打开的最大文件数是否有限制?
我正在制作一个应用程序,它需要同时打开至少676个文件到最多1400个文件。 我将使用StreamWriter
类写入这些文件并使用StreamReader
Class读取数据。 那么,对于可以同时打开以便在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(); }