4 using System.Collections.Generic;
8 namespace SiliconStudio.Assets
23 if (filePath == null)
throw new ArgumentNullException(
"filePath");
24 return IsFileLocked(
new FileInfo(filePath));
35 if (file == null)
throw new ArgumentNullException(
"file");
38 using (var stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None))
56 return filePath == null ? null : Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, filePath));
66 if (String.IsNullOrEmpty(fileExtension))
71 fileExtension = fileExtension.ToLower();
72 if (fileExtension.StartsWith(
"."))
76 return String.Format(
".{0}", fileExtension);
87 if (fileExtensions == null)
throw new ArgumentNullException(
"fileExtensions");
88 var fileExtensionArray = fileExtensions.Split(
new[] {
',',
';' }).Select(fileExt => fileExt.Trim().ToLower()).ToList();
89 var filteredExtensions =
new HashSet<string>(StringComparer.OrdinalIgnoreCase);
90 foreach (var fileExtension
in fileExtensionArray.Select(NormalizeFileExtension))
92 if (fileExtension ==
string.Empty)
96 filteredExtensions.Add(fileExtension);
99 return filteredExtensions;
110 return GetFileExtensionsAsSet(fileExtensions).ToArray();
115 if (rootDirectory == null)
throw new ArgumentNullException(
"rootDirectory");
117 var directory =
new DirectoryInfo(rootDirectory);
118 if (Directory.Exists(rootDirectory))
122 yield
return directory;
123 foreach (var subDirectory
in directory.EnumerateDirectories(
"*", SearchOption.AllDirectories))
125 yield
return subDirectory;
132 yield
return directory;
133 directory = directory.Parent;
135 while (directory != null);
static bool IsFileLocked(FileInfo file)
Determines whether the specified file is locked.
static string[] GetFileExtensions(string fileExtensions)
Gets the file extensions normalized separated by ',' ';'.
SearchDirection
A direction to search for files in directories
static string NormalizeFileExtension(string fileExtension)
Normalizes the file extension by adding a '.' prefix and making it lowercase.
static string GetAbsolutePath(string filePath)
Gets the absolute path.
static bool IsFileLocked(string filePath)
Determines whether the specified file is locked.
static HashSet< string > GetFileExtensionsAsSet(string fileExtensions)
Gets the file extensions normalized separated by ',' ';'.
static IEnumerable< DirectoryInfo > EnumerateDirectories(string rootDirectory, SearchDirection direction)