可以在C#中打开的最大文件数是否有限制?

Pra*_*hal 5 .net c# file-io file

我正在制作一个应用程序,它需要同时打开至少676个文件到最多1400个文件.我将使用StreamWriterClass 写入这些文件并使用Class读取数据StreamReader.因此,对于可以同时打开以便在C#中读取或写入的文件的最大限制,就像VC++一样,如下面的链接所述. Windows中打开文件的数量是否有限制.

bho*_*ton 8

.NET打开的文件的上限受Win32 API CreateFile强加的限制,即16384.


Ond*_*dar 7

这对我有用:

  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();
  }
Run Code Online (Sandbox Code Playgroud)