查找文件的当前大小与文件 java 标题中的数量
Posted
技术标签:
【中文标题】查找文件的当前大小与文件 java 标题中的数量【英文标题】:Finding current size of file vs. amount in title of file java 【发布时间】:2014-02-05 05:26:42 【问题描述】:我一直在做一个涉及下载种子的小项目。最初我计划使用 ttorrent(Java BitTorrent 库)来下载我需要的 torrent,但与 uTorrent 相比它速度很慢。我决定通过执行命令行来使用 uTorrent。
Process p=Runtime.getRuntime().exec("cmd /c cd C:\\Users\\Administrator\\AppData\\Roaming\\uTorrent & start uTorrent.exe /DIRECTORY C:\\ C:\\"+ CURRENT_DOWNLOADS + ".torrent");
p.waitFor();
但是,由于这解决了我的速度问题,它使我无法控制任何事情,例如下载完成的时间。我需要知道这一点,因为下载完成后,我应该会在我的电子邮件中收到一条消息。由于我不知道文件何时完成,因此在文件开始下载后不久就会发送电子邮件。下载 torrent 时,它显示为完整文件的文件长度,并且标题没有变化,例如添加的后缀或任何内容。
我需要一种方法来计算文件的实际大小与标题中文件的大小,或者根据文件/文件夹中的更改了解文件何时完成下载的替代方法强>
到目前为止的一段代码。
String files;
File folder = new File(path);
File[] listOfFiles = folder.listFiles();
folder = new File(path);
listOfFiles = folder.listFiles();
// Beginning of file search loop
boolean fileDownloaded = false;
while (!fileDownloaded)
for (int i = 0; i < listOfFiles.length; i++)
if (listOfFiles[i].isFile())
files = listOfFiles[i].getName();
if (files.contains(".mp4") && !files.contains(".part") && listOfFiles[i].length() > 838860800)
//
File ff = listOfFiles[i];
if(ff.exists())
for(int timeout = 100; timeout>0; timeout--)
RandomAccessFile ran = null;
try
ran = new RandomAccessFile(ff, "rw");
System.out.println("1");
break; // no errors, done waiting
catch (Exception ex)
System.out.println("2");
finally
if(ran != null) try
System.out.println("3");
ran.close();
catch (IOException ex)
//do nothing
ran = null;
try
System.out.println("4");
Thread.sleep(100); // wait a bit then try again
catch (InterruptedException ex)
//do nothing
System.out.println("5");
else
try
GoogleMail.Send("movdload", "********", "**********@gmail.com", "Downloaded!", "http://**********/"+subPath+"/"+listOfFiles[i].getName());
fileDownloaded = true;
catch (MessagingException e)
e.printStackTrace();
break;
Thread.currentThread().sleep(1000);
【问题讨论】:
【参考方案1】:我认为下载文件后,您无法直接从 utorrent 获取信息。但是您可以使用 NIO2 java 7 文件 API 来不断检查文件状态,即具有连续间隔和文件大小的上次修改状态。 由于 torrent 文件可能会提供有关要下载的文件大小的信息。但是如果大小不完全匹配并且种子因为种子而被卡住,那么就有问题了。
【讨论】:
感谢 NIO2 的这个想法!将对其进行测试并尽快告诉您它是否解决了我的问题!以上是关于查找文件的当前大小与文件 java 标题中的数量的主要内容,如果未能解决你的问题,请参考以下文章