3 #if SILICONSTUDIO_PLATFORM_WINDOWS_DESKTOP
8 namespace SiliconStudio.Core.IO
13 public partial class FileSystemProvider
15 public override string GetAbsolutePath(
string path)
17 return ConvertUrlToFullPath(path);
23 if (localBasePath != null && url.Split(VirtualFileSystem.DirectorySeparatorChar, VirtualFileSystem.AltDirectorySeparatorChar).Contains(
".."))
24 throw new InvalidOperationException(
"Relative path is not allowed in FileSystemProvider.");
25 return new FileStream(ConvertUrlToFullPath(url), (
FileMode)mode, (FileAccess)access, (FileShare)share);
29 public override string[] ListFiles(
string url,
string searchPattern,
VirtualSearchOption searchOption)
31 return Directory.GetFiles(ConvertUrlToFullPath(url), searchPattern, (SearchOption)searchOption).Select(ConvertFullPathToUrl).ToArray();
35 public override void FileMove(
string sourceUrl,
string destinationUrl)
37 File.Move(ConvertUrlToFullPath(sourceUrl), ConvertUrlToFullPath(destinationUrl));
41 public override void FileMove(
string sourceUrl, IVirtualFileProvider destinationProvider,
string destinationUrl)
43 var fsProvider = destinationProvider as FileSystemProvider;
44 if (fsProvider != null)
46 destinationProvider.CreateDirectory(destinationUrl.Substring(0, destinationUrl.LastIndexOf(VirtualFileSystem.DirectorySeparatorChar)));
47 File.Move(ConvertUrlToFullPath(sourceUrl), fsProvider.ConvertUrlToFullPath(destinationUrl));
52 destinationStream = destinationProvider.OpenStream(destinationUrl, VirtualFileMode.CreateNew, VirtualFileAccess.Write))
54 sourceStream.CopyTo(destinationStream);
56 FileDelete(sourceUrl);
60 public override DateTime GetLastWriteTime(
string url)
62 return File.GetLastWriteTime(ConvertUrlToFullPath(url));
System.IO.FileMode FileMode
VirtualFileShare
File share capabilities, equivalent of System.IO.FileShare.
VirtualFileAccess
File access equivalent of System.IO.FileAccess.
VirtualFileMode
File mode equivalent of System.IO.FileMode.
StreamFlags
Describes the different type of streams.