mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
fixed #3104: Handle .tar.gz file extension
This commit is contained in:
parent
e546b3bc9e
commit
ae7e8d318e
2 changed files with 32 additions and 8 deletions
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue