gpt4 book ai didi

java - 查找文件当前大小与文件标题中的数量 java

转载 作者:行者123 更新时间:2023-12-01 13:31:06 25 4
gpt4 key购买 nike

我一直在从事一个涉及下载种子的小项目。最初我计划使用 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 时,它显示为完整文件的文件长度,并且标题没有变化,例如添加后缀或任何内容。

我需要一种方法来计算文件的实际大小与 header 中文件的大小,或者根据文件/文件夹中的更改了解文件何时完成下载

到目前为止的一段代码。

  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);
}

最佳答案

我认为下载文件后您无法直接从 utorrent 获取信息。但是您可以使用 NIO2 java 7 文件 api 来持续检查文件状态,即上次修改状态以及连续的时间间隔和文件大小。因为 torrent 文件可能会提供有关要下载的文件大小的信息。但如果大小不完全匹配并且种子由于种子而被卡住,那么就会出现问题。

关于java - 查找文件当前大小与文件标题中的数量 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21569291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com