mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-04 03:27:21 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
#pragma warning disable CS1591
 | 
						|
 | 
						|
using System;
 | 
						|
using System.IO;
 | 
						|
using MediaBrowser.Model.IO;
 | 
						|
 | 
						|
namespace Emby.Server.Implementations.IO
 | 
						|
{
 | 
						|
    public class MbLinkShortcutHandler : IShortcutHandler
 | 
						|
    {
 | 
						|
        private readonly IFileSystem _fileSystem;
 | 
						|
 | 
						|
        public MbLinkShortcutHandler(IFileSystem fileSystem)
 | 
						|
        {
 | 
						|
            _fileSystem = fileSystem;
 | 
						|
        }
 | 
						|
 | 
						|
        public string Extension => ".mblink";
 | 
						|
 | 
						|
        public string? Resolve(string shortcutPath)
 | 
						|
        {
 | 
						|
            if (string.IsNullOrEmpty(shortcutPath))
 | 
						|
            {
 | 
						|
                throw new ArgumentException("Shortcut path is empty or null.", nameof(shortcutPath));
 | 
						|
            }
 | 
						|
 | 
						|
            if (string.Equals(Path.GetExtension(shortcutPath), ".mblink", StringComparison.OrdinalIgnoreCase))
 | 
						|
            {
 | 
						|
                var path = File.ReadAllText(shortcutPath);
 | 
						|
 | 
						|
                return _fileSystem.NormalizePath(path);
 | 
						|
            }
 | 
						|
 | 
						|
            return null;
 | 
						|
        }
 | 
						|
 | 
						|
        public void Create(string shortcutPath, string targetPath)
 | 
						|
        {
 | 
						|
            if (string.IsNullOrEmpty(shortcutPath))
 | 
						|
            {
 | 
						|
                throw new ArgumentNullException(nameof(shortcutPath));
 | 
						|
            }
 | 
						|
 | 
						|
            if (string.IsNullOrEmpty(targetPath))
 | 
						|
            {
 | 
						|
                throw new ArgumentNullException(nameof(targetPath));
 | 
						|
            }
 | 
						|
 | 
						|
            File.WriteAllText(shortcutPath, targetPath);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |