优化合并路径判断和删除临时文件夹的逻辑
This commit is contained in:
parent
1228d03f62
commit
3c17a20447
|
@ -48,6 +48,24 @@ namespace N_m3u8DL_RE.DownloadManager
|
|||
}
|
||||
}
|
||||
|
||||
//若该文件夹为空,删除,同时判断其父文件夹,直到遇到根目录或不为空的目录
|
||||
private void SafeDeleteDir(string dirPath)
|
||||
{
|
||||
if (string.IsNullOrEmpty(dirPath) || !Directory.Exists(dirPath))
|
||||
return;
|
||||
|
||||
var parent = Path.GetDirectoryName(dirPath)!;
|
||||
if (!Directory.EnumerateFileSystemEntries(dirPath).Any())
|
||||
{
|
||||
Directory.Delete(dirPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
SafeDeleteDir(parent);
|
||||
}
|
||||
|
||||
//从文件读取KEY
|
||||
private async Task SearchKeyAsync(string? currentKID)
|
||||
{
|
||||
|
@ -254,8 +272,8 @@ namespace N_m3u8DL_RE.DownloadManager
|
|||
//修改输出后缀
|
||||
var outputExt = "." + streamSpec.Extension;
|
||||
if (streamSpec.Extension == null) outputExt = ".ts";
|
||||
else if (streamSpec.MediaType == MediaType.AUDIO) outputExt = ".m4a";
|
||||
else if (streamSpec.MediaType != MediaType.SUBTITLES) outputExt = ".mp4";
|
||||
else if (streamSpec.MediaType == MediaType.AUDIO && streamSpec.Extension == "m4s") outputExt = ".m4a";
|
||||
else if (streamSpec.MediaType != MediaType.SUBTITLES && streamSpec.Extension == "m4s") outputExt = ".mp4";
|
||||
|
||||
var output = Path.Combine(saveDir, saveName + outputExt);
|
||||
|
||||
|
@ -489,10 +507,7 @@ namespace N_m3u8DL_RE.DownloadManager
|
|||
{
|
||||
File.Delete(file);
|
||||
}
|
||||
if (!Directory.EnumerateFiles(tmpDir).Any())
|
||||
{
|
||||
Directory.Delete(tmpDir);
|
||||
}
|
||||
SafeDeleteDir(tmpDir);
|
||||
}
|
||||
|
||||
//重新读取init信息
|
||||
|
@ -576,10 +591,7 @@ namespace N_m3u8DL_RE.DownloadManager
|
|||
{
|
||||
OutputFiles.ForEach(f => File.Delete(f.FilePath));
|
||||
var tmpDir = DownloaderConfig.TmpDir ?? Environment.CurrentDirectory;
|
||||
if (!Directory.EnumerateFiles(tmpDir).Any())
|
||||
{
|
||||
Directory.Delete(tmpDir);
|
||||
}
|
||||
SafeDeleteDir(tmpDir);
|
||||
}
|
||||
else Logger.ErrorMarkUp($"Mux failed");
|
||||
}
|
||||
|
|
|
@ -79,6 +79,9 @@ namespace N_m3u8DL_RE.Util
|
|||
bool writeDate = true, string poster = "", string audioName = "", string title = "",
|
||||
string copyright = "", string comment = "", string encodingTool = "", string recTime = "")
|
||||
{
|
||||
//改为绝对路径
|
||||
outputPath = Path.GetFullPath(outputPath);
|
||||
|
||||
string dateString = string.IsNullOrEmpty(recTime) ? DateTime.Now.ToString("o") : recTime;
|
||||
|
||||
StringBuilder command = new StringBuilder("-loglevel warning -i concat:\"");
|
||||
|
|
Loading…
Reference in New Issue