Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么';定期从网络共享文件夹读取文件的最有效方法是什么?_C#_Java_Windows_File_Io - Fatal编程技术网

C# 什么';定期从网络共享文件夹读取文件的最有效方法是什么?

C# 什么';定期从网络共享文件夹读取文件的最有效方法是什么?,c#,java,windows,file,io,C#,Java,Windows,File,Io,目标是定期从另一个程序输出文件的文件夹中读取文件,然后将文件输入到我代码的另一部分 如何在性能与可读性和易用性代码之间实现最佳平衡 (我需要在C#和Java中完成这项工作。因此,双重标记(不,这不是家庭作业:)在Java中,您可以使用watch服务。我相信它使用与C#相同的底层系统调用 对于大多数程序来说,I/O都是一个瓶颈,但是如果你想提高性能,你可以做一些事情来帮助你。第一,只有在你需要的时候才读。这可以通过使用FileSystemWatcher在文件更改时告诉您来实现。第二种方法是,如果可

目标是定期从另一个程序输出文件的文件夹中读取文件,然后将文件输入到我代码的另一部分

如何在性能与可读性和易用性代码之间实现最佳平衡


(我需要在C#和Java中完成这项工作。因此,双重标记(不,这不是家庭作业:)

在Java中,您可以使用watch服务。我相信它使用与C#相同的底层系统调用


对于大多数程序来说,I/O都是一个瓶颈,但是如果你想提高性能,你可以做一些事情来帮助你。第一,只有在你需要的时候才读。这可以通过使用FileSystemWatcher在文件更改时告诉您来实现。第二种方法是,如果可能的话,如果可以继续而不完成操作,则生成一个新线程来执行I/O。

尝试c中的
FileSystemWatcher
;效率取决于文件大小和轮询频率。但是,如果writer使用“file.dat.partial”这样的临时名称编写文件,并在完成后将其重命名为“file.dat”,则可以避免很多麻烦。重命名在所有操作系统中都是原子的。您的轮询应该只查看这些非部分文件,并在成功获取后删除它们。有关FileSystemWatcher,请参阅和