Files
Umbraco-CMS/src/Umbraco.Core/IO/IOHelperExtensions.cs
Ronald Barendse 84a0cd8c09 Add VersionAssemblyName to package manifest (#14046)
* Add VersionAssemblyName to package manifest

* Fix/improve nullability

* Ensure package version from manifest is set when package migration exists

* Set versionAssemblyName in umbracopackage template

* Use Assembly.Load instead of ITypeFinder

* Use AssemblyLoadContext to get asesmbly by name

* Get version from package migration assembly

* Hide unknown package version

* Set versionAssemblyName in umbracopackage-rcl template
2023-05-30 15:47:36 +02:00

57 lines
1.8 KiB
C#

using System.Diagnostics.CodeAnalysis;
using Umbraco.Cms.Core.IO;
namespace Umbraco.Extensions;
public static class IOHelperExtensions
{
/// <summary>
/// Will resolve a virtual path URL to an absolute path, else if it is not a virtual path (i.e. starts with ~/) then
/// it will just return the path as-is (relative).
/// </summary>
/// <param name="ioHelper"></param>
/// <param name="path"></param>
/// <returns></returns>
[return: NotNullIfNotNull("path")]
public static string? ResolveRelativeOrVirtualUrl(this IIOHelper ioHelper, string? path)
{
if (string.IsNullOrWhiteSpace(path))
{
return path;
}
return path.StartsWith("~/") ? ioHelper.ResolveUrl(path) : path;
}
/// <summary>
/// Tries to create a directory.
/// </summary>
/// <param name="ioHelper">The IOHelper.</param>
/// <param name="dir">the directory path.</param>
/// <returns>true if the directory was created, false otherwise.</returns>
public static bool TryCreateDirectory(this IIOHelper ioHelper, string dir)
{
try
{
var dirPath = ioHelper.MapPath(dir);
if (Directory.Exists(dirPath) == false)
{
Directory.CreateDirectory(dirPath);
}
var filePath = dirPath + "/" + CreateRandomFileName(ioHelper) + ".tmp";
File.WriteAllText(filePath, "This is an Umbraco internal test file. It is safe to delete it.");
File.Delete(filePath);
return true;
}
catch
{
return false;
}
}
public static string CreateRandomFileName(this IIOHelper ioHelper) =>
"umbraco-test." + Guid.NewGuid().ToString("N").Substring(0, 8);
}