#1189 - Auto-Organize: Fix PathTooLongException due to long EpisodeTitle
This commit is contained in:
parent
1cf65f1a2e
commit
5637142100
|
@ -182,7 +182,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
|
||||||
_logger.Info("Sorting file {0} to new path {1}", sourcePath, newPath);
|
_logger.Info("Sorting file {0} to new path {1}", sourcePath, newPath);
|
||||||
result.TargetPath = newPath;
|
result.TargetPath = newPath;
|
||||||
|
|
||||||
var fileExists = _fileSystem.FileExists(result.TargetPath);
|
var fileExists = _fileSystem.FileExists(result.TargetPath);
|
||||||
var otherDuplicatePaths = GetOtherDuplicatePaths(result.TargetPath, series, seasonNumber, episodeNumber, endingEpiosdeNumber);
|
var otherDuplicatePaths = GetOtherDuplicatePaths(result.TargetPath, series, seasonNumber, episodeNumber, endingEpiosdeNumber);
|
||||||
|
|
||||||
if (!overwriteExisting)
|
if (!overwriteExisting)
|
||||||
|
@ -272,7 +272,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
|
||||||
|
|
||||||
var destination = Path.Combine(directory, filename);
|
var destination = Path.Combine(directory, filename);
|
||||||
|
|
||||||
_fileSystem.MoveFile(file, destination);
|
_fileSystem.MoveFile(file, destination);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -332,19 +332,19 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
|
||||||
{
|
{
|
||||||
_libraryMonitor.ReportFileSystemChangeBeginning(result.TargetPath);
|
_libraryMonitor.ReportFileSystemChangeBeginning(result.TargetPath);
|
||||||
|
|
||||||
_fileSystem.CreateDirectory(Path.GetDirectoryName(result.TargetPath));
|
_fileSystem.CreateDirectory(Path.GetDirectoryName(result.TargetPath));
|
||||||
|
|
||||||
var targetAlreadyExists = _fileSystem.FileExists(result.TargetPath);
|
var targetAlreadyExists = _fileSystem.FileExists(result.TargetPath);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (targetAlreadyExists || options.CopyOriginalFile)
|
if (targetAlreadyExists || options.CopyOriginalFile)
|
||||||
{
|
{
|
||||||
_fileSystem.CopyFile(result.OriginalPath, result.TargetPath, true);
|
_fileSystem.CopyFile(result.OriginalPath, result.TargetPath, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_fileSystem.MoveFile(result.OriginalPath, result.TargetPath);
|
_fileSystem.MoveFile(result.OriginalPath, result.TargetPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
result.Status = FileSortingStatus.Success;
|
result.Status = FileSortingStatus.Success;
|
||||||
|
@ -439,6 +439,17 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
|
||||||
|
|
||||||
newPath = Path.Combine(newPath, episodeFileName);
|
newPath = Path.Combine(newPath, episodeFileName);
|
||||||
|
|
||||||
|
// Try to account for windows limitations by removing the episode title
|
||||||
|
if (newPath.Length > 255)
|
||||||
|
{
|
||||||
|
var extension = Path.GetExtension(episodeFileName);
|
||||||
|
var fileName = Path.GetFileNameWithoutExtension(episodeFileName);
|
||||||
|
fileName = fileName.Replace(episode.Name, string.Empty, StringComparison.OrdinalIgnoreCase);
|
||||||
|
episodeFileName = Path.ChangeExtension(fileName, extension);
|
||||||
|
|
||||||
|
newPath = Path.Combine(newPath, episodeFileName);
|
||||||
|
}
|
||||||
|
|
||||||
return newPath;
|
return newPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user