Java youtube dl转换;C:\";至;“C”;设置保存位置时
我正在为的Windows exe版本创建基于Java的GUI。Java youtube dl转换;C:\";至;“C”;设置保存位置时,java,swing,youtube-dl,Java,Swing,Youtube Dl,我正在为的Windows exe版本创建基于Java的GUI。 自述文件的输出模板部分说,-o可用于在下载时设置保存位置和文件名。 当我通过命令行使用该程序时,我可以使用youtube-dl.exe-o“C:\Users\\Videos\%(title)s.%(ext)s”将下载位置设置为正常,并将其正常下载到指定的文件夹中。 但是,当我通过Java调用流程时,使用ProcessBuilder如下所示: output = "-o \"" + save_path + "\\%(title)s.%(
自述文件的输出模板部分说,
-o
可用于在下载时设置保存位置和文件名。当我通过命令行使用该程序时,我可以使用
youtube-dl.exe-o“C:\Users\\Videos\%(title)s.%(ext)s”
将下载位置设置为正常,并将其正常下载到指定的文件夹中。但是,当我通过Java调用流程时,使用
ProcessBuilder
如下所示:
output = "-o \"" + save_path + "\\%(title)s.%(ext)s\"";
Process process = new ProcessBuilder("lib\\youtube-dl.exe", output, url.getText()).start();
我一直得到以下输出:
-o "C:\Users\nightstalker\Videos\youtube-dl\%(title)s.%(ext)s"
Thread Start
[youtube] wnc77S-g0qQ: Downloading webpage
[youtube] wnc77S-g0qQ: Extracting video information
[youtube] wnc77S-g0qQ: Downloading js player en_US-vfljL8ofl
[youtube] wnc77S-g0qQ: Downloading DASH manifest
[download] Destination: C#\Users\nightstalker\Videos\youtube-dl\Some Video.mp4
这就是save\u路径
的外观
File save_path = new File("C:\\Users\\"+System.getProperty("user.name")+"\\Videos\\youtube-dl");
这基本上创建了一个名为C\Users\nightstapper\Videos\youtube dl
的文件夹,并继续在那里下载。
有什么原因吗?我将避开格式问题,希望能为您提供一个仍然有效的答案 ProcessBuilder允许您按如下方式设置工作目录:
output = "\"%(title)s.%(ext)s\"";
Process process = new ProcessBuilder("lib\\youtube-dl.exe", "-o", output, url.getText()).directory("save_path").start();
资料来源:
您可以将ProcessBuilder上的目录()设置为**C:\Users\\Videos**,如下所示,而不是将整个路径放入传递到youtube dl的-o选项中:
output = "\"%(title)s.%(ext)s\"";
Process process = new ProcessBuilder("lib\\youtube-dl.exe", "-o", output, url.getText()).directory("save_path").start();
我将避开格式问题,并希望提供一个仍然适用于您的答案 ProcessBuilder允许您按如下方式设置工作目录:
output = "\"%(title)s.%(ext)s\"";
Process process = new ProcessBuilder("lib\\youtube-dl.exe", "-o", output, url.getText()).directory("save_path").start();
资料来源:
您可以将ProcessBuilder上的目录()设置为**C:\Users\\Videos**,如下所示,而不是将整个路径放入传递到youtube dl的-o选项中:
output = "\"%(title)s.%(ext)s\"";
Process process = new ProcessBuilder("lib\\youtube-dl.exe", "-o", output, url.getText()).directory("save_path").start();
save\u path
看起来像什么?和/或之前是否以某种方式进行了处理?@Marvin请检查更新的问题,因此如果您输出save_path
或output
,哈希值是否已经存在,还是仅在youtube dl中转换?使用youtube dl
转换。输出中的第一行是正在打印的输出
变量。保存路径
是什么样子的?和/或之前是否以某种方式进行了处理?@Marvin请检查更新的问题,因此如果您输出save_path
或output
,哈希值是否已经存在,还是仅在youtube dl中转换?使用youtube dl
转换。输出中的第一行是正在打印的输出
变量。youtube dl
的问题是它将开始直接下载到保存它的文件夹中。因此,此方法将只更改工作目录,而不保存youtube dl
的路径。不过,让我试试。你是不是被这个Windows特有的文件名编码错误咬到了:你的答案很完美。感谢您向我介绍ProcessBuilder
。完全取消了-o
参数,只需使用ProcessBuilder的directory()
选项。非常感谢!好东西。我很高兴能帮上忙。唐纳德,来解释你的不满。我无法修复我不知道的东西。我解决了将-o开关及其值在单个参数中传递给进程的问题。这可能是你的问题。youtube dl
的问题是它将开始直接下载到保存它的文件夹中。因此,此方法将只更改工作目录,而不保存youtube dl
的路径。不过,让我试试。你是不是被这个Windows特有的文件名编码错误咬到了:你的答案很完美。感谢您向我介绍ProcessBuilder
。完全取消了-o
参数,只需使用ProcessBuilder的directory()
选项。非常感谢!好东西。我很高兴能帮上忙。唐纳德,来解释你的不满。我无法修复我不知道的东西。我解决了将-o开关及其值在单个参数中传递给进程的问题。这可能是你的问题。