예제 #1
0
 private Task <Settings.IFile> CopyAsync(Settings.IFile file)
 {
     return(Task.Run(
                delegate
     {
         return Copy(file);
     }));
 }
예제 #2
0
            /// <summary>
            /// Locks the file
            /// </summary>
            /// <param name="timeout">The amount of time to try to acquire a lock</param>
            /// <param name="force">Forces a file with only 1 reference to lock</param>
            public static ISharedFile Lock(Settings.IFile file, int timeout, bool force = false)
            {
                if (file == null || file.References <= 1 && !force)
                {
                    return(null);
                }

                return(Lock(file.Path, timeout));
            }
예제 #3
0
            public static SharedFile Lock(Account account, Settings.IFile file, int timeout)
            {
                if (file.References <= 1)
                {
                    return(null);
                }

                return(Lock(account, file.Path, timeout));
            }
예제 #4
0
 private Settings.IFile Create(Settings.IFile file)
 {
     if (file is Settings.IDatFile)
     {
         return(Settings.CreateDatFile());
     }
     else if (file is Settings.IGfxFile)
     {
         return(Settings.CreateGfxFile());
     }
     else
     {
         throw new NotSupportedException();
     }
 }
예제 #5
0
        private Settings.IFile Copy(Settings.IFile file)
        {
            if (File.Exists(file.Path))
            {
                var tmp = Path.GetTempFileName();
                File.Copy(file.Path, tmp, true);

                var _file = Create(file);

                _file.Path = tmp;

                return(_file);
            }
            else
            {
                return(Create(file));
            }
        }
예제 #6
0
 public SelectedFile(Settings.IFile file)
 {
     this.File = file;
 }