Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
FileSystemProvider.WindowsRuntime.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 #if SILICONSTUDIO_PLATFORM_WINDOWS_RUNTIME
4 using System;
5 using System.Diagnostics;
6 using System.IO;
7 using SharpDX.IO;
8 using System.Linq;
9 using System.Runtime.InteropServices;
10 using System.Runtime.InteropServices.ComTypes;
11 
12 namespace SiliconStudio.Core.IO
13 {
14  /// <summary>
15  /// A file system implementation for IVirtualFileProvider.
16  /// </summary>
17  public partial class FileSystemProvider
18  {
19  public override string GetAbsolutePath(string path)
20  {
21  return ConvertUrlToFullPath(path);
22  }
23 
24  /// <inheritdoc/>
25  public override Stream OpenStream(string url, VirtualFileMode mode, VirtualFileAccess access, VirtualFileShare share = VirtualFileShare.Read, StreamFlags streamFlags = StreamFlags.None)
26  {
27  if (localBasePath != null && url.Split(VirtualFileSystem.DirectorySeparatorChar, VirtualFileSystem.AltDirectorySeparatorChar).Contains(".."))
28  throw new InvalidOperationException("Relative path is not allowed in FileSystemProvider.");
29 
30  var rawAccess = (NativeFileAccess) 0;
31  if ((access & VirtualFileAccess.Read) != 0)
32  rawAccess |= NativeFileAccess.Read;
33  if ((access & VirtualFileAccess.Write) != 0)
34  rawAccess |= NativeFileAccess.Write;
35 
36  return new NativeFileStream(ConvertUrlToFullPath(url), (NativeFileMode)mode, rawAccess);
37  }
38 
39  /// <inheritdoc/>
40  public override string[] ListFiles(string url, string searchPattern, VirtualSearchOption searchOption)
41  {
42  throw new NotImplementedException();
43  }
44  }
45 }
46 #endif
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.
Definition: StreamFlags.cs:11