在C#中可以打开的最大文件数有限制吗?
我正在制作一个应用程序,它需要同时打开至少676个文件,最多1400个文件。我将使用在C#中可以打开的最大文件数有限制吗?,c#,.net,file,file-io,C#,.net,File,File Io,我正在制作一个应用程序,它需要同时打开至少676个文件,最多1400个文件。我将使用StreamWriter类写入这些文件,并使用StreamReader类读取数据。那么,像下面的链接中描述的VC++一样,在C#中可以同时打开以进行读写的文件数量是否有最大限制。 . 这对我很有用: var streams = new Stream[10000]; for (var i = 0; i < streams.Length; i++) { streams[i] = File.Op
StreamWriter
类写入这些文件,并使用StreamReader
类读取数据。那么,像下面的链接中描述的VC++一样,在C#中可以同时打开以进行读写的文件数量是否有最大限制。
. 这对我很有用:
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();
}
var-streams=新流[10000];
对于(变量i=0;i{
流[index].WriteByte((字节)“B”);
});
任务[i].Start();
}
Task.WaitAll(任务);
对于(变量i=0;i
由.NET打开的文件的上限由Win32 API CreateFile的限制决定,即16384。您是否达到了该限制,或者在尝试任何操作之前只是询问一下?您能解释一下为什么需要这样做吗?你的问题没有错,只是出于我自己的好奇心!那么,为什么不试着同时打开1400个文件,自己看看呢?我认为JMK的任务是什么,我也很感兴趣。@Voidpaw我说的不是OpenFileDialog
,而是分别使用StreamReader
和StreamWriter
对文件进行“读”和“写”。