fixed #3104: Handle .tar.gz file extension

This commit is contained in:
Jaex 2019-03-03 18:35:39 +03:00
parent e546b3bc9e
commit ae7e8d318e
2 changed files with 32 additions and 8 deletions

View file

@ -92,20 +92,44 @@ public static Cursor[] CursorList
}
}
/// <summary>Get file name extension without dot.</summary>
public static string GetFilenameExtension(string filePath)
public static string GetFilenameExtension(string filePath, bool includeDot = false, bool checkSecondExtension = true)
{
string extension = "";
if (!string.IsNullOrEmpty(filePath))
{
int pos = filePath.LastIndexOf('.');
if (pos >= 0)
{
return filePath.Substring(pos + 1);
extension = filePath.Substring(pos + 1);
if (checkSecondExtension)
{
filePath = filePath.Remove(pos);
string extension2 = GetFilenameExtension(filePath, false, false);
if (!string.IsNullOrEmpty(extension2))
{
foreach (string knownExtension in new string[] { "tar" })
{
if (extension2.Equals(knownExtension, StringComparison.OrdinalIgnoreCase))
{
extension = extension2 + "." + extension;
break;
}
}
}
}
if (includeDot)
{
extension = "." + extension;
}
}
}
return null;
return extension;
}
public static string GetFilenameSafe(string filePath)

View file

@ -102,7 +102,7 @@ public static WorkerTask CreateFileUploaderTask(string filePath, TaskSettings ta
if (task.Info.TaskSettings.UploadSettings.FileUploadUseNamePattern)
{
string ext = Path.GetExtension(task.Info.FilePath);
string ext = Helpers.GetFilenameExtension(task.Info.FilePath);
task.Info.FileName = TaskHelpers.GetFilename(task.Info.TaskSettings, ext);
}
@ -181,12 +181,12 @@ public static WorkerTask CreateFileJobTask(string filePath, TaskSettings taskSet
if (!string.IsNullOrEmpty(customFileName))
{
string ext = Path.GetExtension(task.Info.FilePath);
string ext = Helpers.GetFilenameExtension(task.Info.FilePath);
task.Info.FileName = Helpers.AppendExtension(customFileName, ext);
}
else if (task.Info.TaskSettings.UploadSettings.FileUploadUseNamePattern)
{
string ext = Path.GetExtension(task.Info.FilePath);
string ext = Helpers.GetFilenameExtension(task.Info.FilePath);
task.Info.FileName = TaskHelpers.GetFilename(task.Info.TaskSettings, ext);
}
@ -211,7 +211,7 @@ public static WorkerTask CreateDownloadTask(string url, bool upload, TaskSetting
if (task.Info.TaskSettings.UploadSettings.FileUploadUseNamePattern)
{
string ext = Path.GetExtension(filename);
string ext = Helpers.GetFilenameExtension(filename);
filename = TaskHelpers.GetFilename(task.Info.TaskSettings, ext);
}