aboutsummaryrefslogtreecommitdiff
path: root/Emby.Common.Implementations/IO/SharpCifs/Util/Sharpen/FilePath.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Common.Implementations/IO/SharpCifs/Util/Sharpen/FilePath.cs')
-rw-r--r--Emby.Common.Implementations/IO/SharpCifs/Util/Sharpen/FilePath.cs603
1 files changed, 287 insertions, 316 deletions
diff --git a/Emby.Common.Implementations/IO/SharpCifs/Util/Sharpen/FilePath.cs b/Emby.Common.Implementations/IO/SharpCifs/Util/Sharpen/FilePath.cs
index 490c76937..1b2f5eddc 100644
--- a/Emby.Common.Implementations/IO/SharpCifs/Util/Sharpen/FilePath.cs
+++ b/Emby.Common.Implementations/IO/SharpCifs/Util/Sharpen/FilePath.cs
@@ -6,337 +6,308 @@ using System.Threading;
namespace SharpCifs.Util.Sharpen
{
public class FilePath
- {
- private string _path;
- private static long _tempCounter;
-
- public FilePath()
- {
- }
-
- public FilePath(string path)
- : this((string)null, path)
- {
-
- }
-
- public FilePath(FilePath other, string child)
- : this((string)other, child)
- {
-
- }
-
- public FilePath(string other, string child)
- {
- if (other == null)
- {
- _path = child;
- }
- else
- {
- while (!string.IsNullOrEmpty(child)
- && (child[0] == Path.DirectorySeparatorChar
- || child[0] == Path.AltDirectorySeparatorChar))
- child = child.Substring(1);
-
- if (!string.IsNullOrEmpty(other)
- && other[other.Length - 1] == Path.VolumeSeparatorChar)
- other += Path.DirectorySeparatorChar;
-
- _path = Path.Combine(other, child);
- }
- }
-
- public static implicit operator FilePath(string name)
- {
- return new FilePath(name);
- }
-
- public static implicit operator string(FilePath filePath)
- {
- return filePath == null ? null : filePath._path;
- }
-
- public override bool Equals(object obj)
- {
- FilePath other = obj as FilePath;
- if (other == null)
- return false;
- return GetCanonicalPath() == other.GetCanonicalPath();
- }
-
- public override int GetHashCode()
- {
- return _path.GetHashCode();
- }
-
- public bool CreateNewFile()
- {
- try
- {
+ {
+ private string _path;
+ private static long _tempCounter;
+
+ public FilePath ()
+ {
+ }
+
+ public FilePath (string path)
+ : this ((string) null, path)
+ {
+
+ }
+
+ public FilePath (FilePath other, string child)
+ : this ((string) other, child)
+ {
+
+ }
+
+ public FilePath (string other, string child)
+ {
+ if (other == null) {
+ _path = child;
+ } else {
+ while (!string.IsNullOrEmpty(child) && (child[0] == Path.DirectorySeparatorChar || child[0] == Path.AltDirectorySeparatorChar))
+ child = child.Substring (1);
+
+ if (!string.IsNullOrEmpty(other) && other[other.Length - 1] == Path.VolumeSeparatorChar)
+ other += Path.DirectorySeparatorChar;
+
+ _path = Path.Combine (other, child);
+ }
+ }
+
+ public static implicit operator FilePath (string name)
+ {
+ return new FilePath (name);
+ }
+
+ public static implicit operator string (FilePath filePath)
+ {
+ return filePath == null ? null : filePath._path;
+ }
+
+ public override bool Equals (object obj)
+ {
+ FilePath other = obj as FilePath;
+ if (other == null)
+ return false;
+ return GetCanonicalPath () == other.GetCanonicalPath ();
+ }
+
+ public override int GetHashCode ()
+ {
+ return _path.GetHashCode ();
+ }
+
+ public bool CreateNewFile ()
+ {
+ try {
//Stream.`Close` method deleted
//File.Open (_path, FileMode.CreateNew).Close ();
File.Open(_path, FileMode.CreateNew).Dispose();
return true;
- }
- catch
- {
- return false;
- }
- }
-
- public static FilePath CreateTempFile()
- {
- return new FilePath(Path.GetTempFileName());
- }
-
- public static FilePath CreateTempFile(string prefix, string suffix)
- {
- return CreateTempFile(prefix, suffix, null);
- }
-
- public static FilePath CreateTempFile(string prefix, string suffix, FilePath directory)
- {
- string file;
- if (prefix == null)
- {
- throw new ArgumentNullException("prefix");
- }
- if (prefix.Length < 3)
- {
- throw new ArgumentException("prefix must have at least 3 characters");
- }
- string str = (directory == null) ? Path.GetTempPath() : directory.GetPath();
- do
- {
- file = Path.Combine(str, prefix + Interlocked.Increment(ref _tempCounter) + suffix);
- } while (File.Exists(file));
-
- new FileOutputStream(file).Close();
- return new FilePath(file);
- }
-
-
- public void DeleteOnExit()
- {
- }
-
-
- public FilePath GetAbsoluteFile()
- {
- return new FilePath(Path.GetFullPath(_path));
- }
-
- public string GetAbsolutePath()
- {
- return Path.GetFullPath(_path);
- }
-
- public FilePath GetCanonicalFile()
- {
- return new FilePath(GetCanonicalPath());
- }
-
- public string GetCanonicalPath()
- {
- return Path.GetFullPath(_path);
- }
-
- public string GetName()
- {
- return Path.GetFileName(_path);
- }
-
- public FilePath GetParentFile()
- {
- return new FilePath(Path.GetDirectoryName(_path));
- }
-
- public string GetPath()
- {
- return _path;
- }
-
- public bool IsAbsolute()
- {
- return Path.IsPathRooted(_path);
- }
-
- public bool IsDirectory()
- {
+ } catch {
+ return false;
+ }
+ }
+
+ public static FilePath CreateTempFile ()
+ {
+ return new FilePath (Path.GetTempFileName ());
+ }
+
+ public static FilePath CreateTempFile (string prefix, string suffix)
+ {
+ return CreateTempFile (prefix, suffix, null);
+ }
+
+ public static FilePath CreateTempFile (string prefix, string suffix, FilePath directory)
+ {
+ string file;
+ if (prefix == null) {
+ throw new ArgumentNullException ("prefix");
+ }
+ if (prefix.Length < 3) {
+ throw new ArgumentException ("prefix must have at least 3 characters");
+ }
+ string str = (directory == null) ? Path.GetTempPath () : directory.GetPath ();
+ do {
+ file = Path.Combine (str, prefix + Interlocked.Increment (ref _tempCounter) + suffix);
+ } while (File.Exists (file));
+
+ new FileOutputStream (file).Close ();
+ return new FilePath (file);
+ }
+
+
+ public void DeleteOnExit ()
+ {
+ }
+
+
+ public FilePath GetAbsoluteFile ()
+ {
+ return new FilePath (Path.GetFullPath (_path));
+ }
+
+ public string GetAbsolutePath ()
+ {
+ return Path.GetFullPath (_path);
+ }
+
+ public FilePath GetCanonicalFile ()
+ {
+ return new FilePath (GetCanonicalPath ());
+ }
+
+ public string GetCanonicalPath ()
+ {
+ string p = Path.GetFullPath (_path);
+ p.TrimEnd (Path.DirectorySeparatorChar);
+ return p;
+ }
+
+ public string GetName ()
+ {
+ return Path.GetFileName (_path);
+ }
+
+ public FilePath GetParentFile ()
+ {
+ return new FilePath (Path.GetDirectoryName (_path));
+ }
+
+ public string GetPath ()
+ {
+ return _path;
+ }
+
+ public bool IsAbsolute ()
+ {
+ return Path.IsPathRooted (_path);
+ }
+
+ public bool IsDirectory ()
+ {
return false; // FileHelper.Instance.IsDirectory(this);
- }
+ }
- public bool IsFile()
- {
- return false; //FileHelper.Instance.IsFile (this);
- }
+ public bool IsFile ()
+ {
+ return false; //FileHelper.Instance.IsFile (this);
+ }
- public long LastModified()
- {
+ public long LastModified ()
+ {
return 0; // FileHelper.Instance.LastModified(this);
- }
+ }
- public long Length()
- {
+ public long Length ()
+ {
return 0; // FileHelper.Instance.Length(this);
- }
-
- public string[] List()
- {
- return List(null);
- }
-
- public string[] List(IFilenameFilter filter)
- {
- try
- {
- if (IsFile())
- return null;
- List<string> list = new List<string>();
- foreach (string filePth in Directory.GetFileSystemEntries(_path))
- {
- string fileName = Path.GetFileName(filePth);
- if ((filter == null) || filter.Accept(this, fileName))
- {
- list.Add(fileName);
- }
- }
- return list.ToArray();
- }
- catch
- {
- return null;
- }
- }
-
- public FilePath[] ListFiles()
- {
- try
- {
- if (IsFile())
- return null;
- List<FilePath> list = new List<FilePath>();
- foreach (string filePath in Directory.GetFileSystemEntries(_path))
- {
- list.Add(new FilePath(filePath));
- }
- return list.ToArray();
- }
- catch
- {
- return null;
- }
- }
-
- static void MakeDirWritable(string dir)
- {
- //FileHelper.Instance.MakeDirWritable (dir);
- }
-
- static void MakeFileWritable(string file)
- {
- //FileHelper.Instance.MakeFileWritable (file);
- }
-
- public bool Mkdir()
- {
- try
- {
- if (Directory.Exists(_path))
- return false;
- Directory.CreateDirectory(_path);
- return true;
- }
- catch (Exception)
- {
- return false;
- }
- }
-
- public bool Mkdirs()
- {
- try
- {
- if (Directory.Exists(_path))
- return false;
- Directory.CreateDirectory(_path);
- return true;
- }
- catch
- {
- return false;
- }
- }
-
- public bool RenameTo(FilePath file)
- {
- return RenameTo(file._path);
- }
-
- public bool RenameTo(string name)
- {
+ }
+
+ public string[] List ()
+ {
+ return List (null);
+ }
+
+ public string[] List (IFilenameFilter filter)
+ {
+ try {
+ if (IsFile ())
+ return null;
+ List<string> list = new List<string> ();
+ foreach (string filePth in Directory.GetFileSystemEntries (_path)) {
+ string fileName = Path.GetFileName (filePth);
+ if ((filter == null) || filter.Accept (this, fileName)) {
+ list.Add (fileName);
+ }
+ }
+ return list.ToArray ();
+ } catch {
+ return null;
+ }
+ }
+
+ public FilePath[] ListFiles ()
+ {
+ try {
+ if (IsFile ())
+ return null;
+ List<FilePath> list = new List<FilePath> ();
+ foreach (string filePath in Directory.GetFileSystemEntries (_path)) {
+ list.Add (new FilePath (filePath));
+ }
+ return list.ToArray ();
+ } catch {
+ return null;
+ }
+ }
+
+ static void MakeDirWritable (string dir)
+ {
+ //FileHelper.Instance.MakeDirWritable (dir);
+ }
+
+ static void MakeFileWritable (string file)
+ {
+ //FileHelper.Instance.MakeFileWritable (file);
+ }
+
+ public bool Mkdir ()
+ {
+ try {
+ if (Directory.Exists (_path))
+ return false;
+ Directory.CreateDirectory (_path);
+ return true;
+ } catch (Exception) {
+ return false;
+ }
+ }
+
+ public bool Mkdirs ()
+ {
+ try {
+ if (Directory.Exists (_path))
+ return false;
+ Directory.CreateDirectory (_path);
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public bool RenameTo (FilePath file)
+ {
+ return RenameTo (file._path);
+ }
+
+ public bool RenameTo (string name)
+ {
return false; // FileHelper.Instance.RenameTo(this, name);
- }
+ }
- public bool SetLastModified(long milis)
- {
+ public bool SetLastModified (long milis)
+ {
return false; // FileHelper.Instance.SetLastModified(this, milis);
- }
+ }
- public bool SetReadOnly()
- {
+ public bool SetReadOnly ()
+ {
return false; // FileHelper.Instance.SetReadOnly(this);
- }
-
- public Uri ToUri()
- {
- return new Uri(_path);
- }
-
- // Don't change the case of this method, since ngit does reflection on it
- public bool CanExecute()
- {
+ }
+
+ public Uri ToUri ()
+ {
+ return new Uri (_path);
+ }
+
+ // Don't change the case of this method, since ngit does reflection on it
+ public bool CanExecute ()
+ {
return false; // FileHelper.Instance.CanExecute(this);
- }
-
- // Don't change the case of this method, since ngit does reflection on it
- public bool SetExecutable(bool exec)
- {
+ }
+
+ // Don't change the case of this method, since ngit does reflection on it
+ public bool SetExecutable (bool exec)
+ {
return false; // FileHelper.Instance.SetExecutable(this, exec);
- }
-
- public string GetParent()
- {
- string p = Path.GetDirectoryName(_path);
- if (string.IsNullOrEmpty(p) || p == _path)
- return null;
- return p;
- }
-
- public override string ToString()
- {
- return _path;
- }
-
- static internal string PathSeparator
- {
- get { return Path.PathSeparator.ToString(); }
- }
-
- static internal char PathSeparatorChar
- {
- get { return Path.PathSeparator; }
- }
-
- static internal char SeparatorChar
- {
- get { return Path.DirectorySeparatorChar; }
- }
-
- static internal string Separator
- {
- get { return Path.DirectorySeparatorChar.ToString(); }
- }
- }
+ }
+
+ public string GetParent ()
+ {
+ string p = Path.GetDirectoryName (_path);
+ if (string.IsNullOrEmpty(p) || p == _path)
+ return null;
+ return p;
+ }
+
+ public override string ToString ()
+ {
+ return _path;
+ }
+
+ static internal string PathSeparator {
+ get { return Path.PathSeparator.ToString (); }
+ }
+
+ static internal char PathSeparatorChar {
+ get { return Path.PathSeparator; }
+ }
+
+ static internal char SeparatorChar {
+ get { return Path.DirectorySeparatorChar; }
+ }
+
+ static internal string Separator {
+ get { return Path.DirectorySeparatorChar.ToString (); }
+ }
+ }
}