aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Controller/Playlists/Playlist.cs11
1 files changed, 11 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Playlists/Playlist.cs b/MediaBrowser.Controller/Playlists/Playlist.cs
index e8b7be7e2..faaceb828 100644
--- a/MediaBrowser.Controller/Playlists/Playlist.cs
+++ b/MediaBrowser.Controller/Playlists/Playlist.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using System.Globalization;
+using System.IO;
using System.Linq;
using System.Text.Json.Serialization;
using System.Threading;
@@ -43,6 +44,16 @@ namespace MediaBrowser.Controller.Playlists
public static bool IsPlaylistFile(string path)
{
+ //When a directory contains a `.`, calling "HasExtension" will return true, even if that location is a directory that exists.
+ //This kills the PlaylistXmlSaver, because instead of saving in "config/data/playlists/MyList2.0/playlist.xml",
+ //It saves the information in "config/data/playlists/MyList2.xml". So we just need to see if it's actually a real directory first.
+ //Lucky for us, when a new playlist is created, the directory on the drive is created first, then the Playlist object is created.
+ //And if there's not a directory there, then we can just check if it has an extension.
+ if (new System.IO.DirectoryInfo(path).Exists)
+ { //This is a directory, and therefore definitely not a playlist file.
+ return false;
+ }
+ //Well, there's no directory there, so if it /looks/ like a file path, then it probably is.
return System.IO.Path.HasExtension(path);
}