我已经创建了一个xspf的歌曲播放列表,我需要将它们复制到一个特定的目录并将它们传输到另一台计算机......我如何使用ubuntu执行此操作?如何将xspf播放列表中的所有文件复制到目录中?
1
A
回答
1
我自己找不到这个地方,所以我编写了一个快速和肮脏的PHP hack来做(刚才)。这绝不是一个优雅的解决方案,但对我的目的来说已经足够好了。在最后注释copy
部分并用一些echo
构造替换它以确保您的代码复制正确的文件可能是一个好主意。
帮助条目:
Usage example: ./copy_xspf.php --e -i myMusic.xspf -o /home/foo/bar
-i filename or --input filename - XSPF file to parse
-o directory or --input directory - directory to copy to (needs to exist!)
--help - display this help and terminate
脚本来源:
#!/usr/bin/php
<?php
// Quick and dirty hack.
for($i = 1; $i < count($argv); ++$i) {
if($argv[$i] == '--help' || $argv[$i] == '-e') {
echo "Usage example: ./copy_xspf.php --e -i myMusic.xspf -o /home/foo/bar\n";
echo "-i filename or --input filename - XSPF file to parse\n";
echo "-o directory or --input directory - directory to copy to (needs to exist!)\n";
echo "--help - display this help and terminate\n";
die();
}
if($argv[$i] == '--input' || $argv[$i] == '-i') {
if(!isset($argv[$i+1])) {
die("No input filename given (xspf file), use -i filename or --input filename\n");
} else {
$filename = $argv[$i+1];
}
}
if($argv[$i] == '--output' || $argv[$i] == '-o') {
if(!isset($argv[$i+1])) {
die("No output directory given, use -o directory or --output directory\n");
} else {
$outputDir = $argv[$i+1];
}
}
}
if(!isset($filename) || empty($filename)) {
die("No input filename given (xspf file), use -i filename or -input filename\n");
}
if(!isset($outputDir) || empty($outputDir)) {
die("No output directory given, use -o directory or --output directory\n");
} else {
$outputDir = rtrim($outputDir, '/');
}
$xml = file_get_contents($filename);
preg_match_all('#<location>(.*?)</location>#', $xml, $matches);
$matches = $matches[1]; // Select only the contents of (.*?), not the entire pattern
$matches = preg_replace('#file://(.*)#', '\\1', $matches); // Remove file://
foreach($matches as $key => $value) {
$matches[$key] = urldecode($value);
$matches[$key] = html_entity_decode($matches[$key]);
}
foreach($matches as $value) {
$base = basename($value);
echo "Copying $base ...\n";
copy($value, "$outputDir/$base");
}
0
我也有类似的问题,所以我把一个python脚本来完成所有的文件解压到一个文件夹https://github.com/solancer/XSPF_Playlist_Extractor
相关问题
- 1. 如何将目录A中的所有* .bak文件复制到目录B?
- 2. 复制目录中的所有文件
- 3. C#,将多个所有子目录中的文件复制到一个目录
- 4. 如何使用globstar复制目录中的所有文件?
- 5. 如何将目录及其子目录中的所有文件复制到另一个目录?
- 6. 播放特定目录中的所有文件
- 7. 如何将文件中的数据复制到目录中或将命令输出复制到目录
- 8. Bash:将文件的所有参数复制到目录
- 9. java:如何将jar文件中的目录复制到tmp目录中?
- 10. 如何在C#中以递归方式列出目录中的所有文件并将所有文件复制到另一个目录
- 11. 在目录的所有文件夹中复制文件
- 12. 如何将我的TFS源服务器中可用的所有文件复制到目录中的文件夹?
- 13. 如何将文件复制到cordva中的另一个目录?
- 14. 如何将文件从源目录复制到qt中的目标目录
- 15. 如何让JavaC将现有的类文件复制到目标目录中?
- 16. 移动从子目录中的所有文件复制到主目录
- 17. 如何将文件复制到文件夹以及该文件夹中的所有目录
- 18. 如何将所有的sql文件应用到目录中?
- 19. JavaFX - 如何将目录中的所有文件添加到TableView
- 20. 如何将文件复制到目录结构中?
- 21. 如何让Ant将属性文件复制到类目录中
- 22. 列出目录中的所有文件
- 23. 将文件名的列添加到目录中的所有文件中
- 24. 将路径/文件列表复制到一个目录
- 25. 将多个目录中的文件复制到一个文件
- 26. 将目录中的所有文件复制到python中的一个文本文件中
- 27. 将图像复制到目录中的所有工作簿
- 28. 如何将所有文件复制,除了一个文件和一个目录到另一个目录
- 29. Powershell - 列出目录中的所有文件夹,拉动每个文件夹中的最新.bak文件,将其压缩,将其复制到目录
- 30. 将文件复制到Qt Creator中的目标目录