我对Java 非常陌生,并且大部分时间都在教我自己,所以我开始构建一个applet.我想创建一个可以从本地磁盘中选择文件并将其作为multipart/form-data POST请求上传但有进度条的文件.显然,用户必须授予Java applet访问硬盘驱动器的权限.现在我已经完成了第一部分工作:用户可以使用JFileChooser对象选择一个文件,方便地返回一个File对象.但我想知道接下来会发生什么.我知道这File.length()将给我文件的总大小(以字节为单位),但是如何将所选内容发送File到网络,以及如何监控已发送的字节数?提前致谢.
我有一个线程,轮询一个文件夹的新文件.问题是它看到了一个新文件,并且在文件被另一个进程完全复制之前就开始处理它.因此,轮询器获取另一个进程错误所使用的文件.
有没有办法检查文件是免费使用还是得到通知?我们当然可以使用异常处理代码,但是有更好的方法吗?
技术:.NET 2.0/C#
更新:
从其他答案中发现,如果我们有权访问编写该文件的应用程序,那么更好的设计是从其他扩展名.tmp开始,然后在复制后重命名.
如果我们不控制源应用程序,可以使用FileStream.Lock