Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
FileSystemProvider.MonoMobile.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_MONO_MOBILE
4 using System;
5 using System.IO;
6 using System.Linq;
7 
8 namespace SiliconStudio.Core.IO
9 {
10  /// <summary>
11  /// A file system implementation for IVirtualFileProvider.
12  /// </summary>
13  public partial class FileSystemProvider
14  {
15 #if SILICONSTUDIO_PLATFORM_IOS
16  public bool AutoSetSkipBackupAttribute { get; set; }
17 #endif
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 streamType = 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  var filename = ConvertUrlToFullPath(url);
30  var result = new FileStream(filename, (FileMode)mode, (FileAccess)access, (FileShare)share);
31 
32 #if SILICONSTUDIO_PLATFORM_IOS
33  if (AutoSetSkipBackupAttribute && (mode == VirtualFileMode.CreateNew || mode == VirtualFileMode.Create || mode == VirtualFileMode.OpenOrCreate))
34  {
35  MonoTouch.Foundation.NSFileManager.SetSkipBackupAttribute(filename, true);
36  }
37 #endif
38 
39  return result;
40  }
41 
42  /// <inheritdoc/>
43  public override string[] ListFiles(string url, string searchPattern, VirtualSearchOption searchOption)
44  {
45  return Directory.GetFiles(ConvertUrlToFullPath(url), searchPattern, (SearchOption)searchOption).Select(ConvertFullPathToUrl).ToArray();
46  }
47  }
48 }
49 #endif
System.IO.FileMode FileMode
Definition: ScriptSync.cs:33
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