Files
Umbraco-CMS/src/Umbraco.Core/IO/FileSystemExtensions.cs

59 lines
1.6 KiB
C#
Raw Normal View History

using System;
using System.IO;
namespace Umbraco.Core.IO
{
public static class FileSystemExtensions
{
public static long GetSize(this IFileSystem fs, string path)
{
using (var ms = new MemoryStream())
{
using (var sr = new StreamReader(ms))
{
using (Stream file = fs.OpenFile(path))
{
var bytes = new byte[file.Length];
file.Read(bytes, 0, (int) file.Length);
ms.Write(bytes, 0, (int) file.Length);
file.Close();
ms.Position = 0;
string str = sr.ReadToEnd();
return str.Length;
}
}
}
}
public static void CopyFile(this IFileSystem fs, string path, string newPath)
{
using (var stream = fs.OpenFile(path))
{
fs.AddFile(newPath, stream);
}
}
public static string GetExtension(this IFileSystem fs, string path)
{
return Path.GetExtension(fs.GetFullPath(path));
}
public static string GetFileName(this IFileSystem fs, string path)
{
return Path.GetFileName(fs.GetFullPath(path));
}
//TODO: Currently this is the only way to do this
internal static void CreateFolder(this IFileSystem fs, string folderPath)
{
var path = fs.GetRelativePath(folderPath);
var tempFile = Path.Combine(path, Guid.NewGuid().ToString("N") + ".tmp");
using (var s = new MemoryStream())
{
fs.AddFile(tempFile, s);
}
fs.DeleteFile(tempFile);
}
}
}