Exemplo n.º 1
0
 protected GetFileResult(int uid, int gid, int mode, FileKind type)
 {
     X_LXD_uid  = uid;
     X_LXD_gid  = gid;
     X_LXD_mode = mode;
     X_LXD_type = type;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Processes a single file in an input directory
        /// </summary>
        /// <param name="inputFile">File to process</param>
        /// <param name="outputDirectory">Directory to put processed file to</param>
        private void ProcessSingleFile(FileInfo inputFile, string outputDirectory)
        {
            FileKind fileKind        = ClassifyFile(inputFile.Extension.ToLower());
            string   subDirectory    = fileKind.GetAttributeOfType <DescriptionAttribute>().Description;
            string   destinationPath = string.Empty;

            try
            {
                destinationPath = m_FileProcessorFactory.ProvideProcessorForFile(fileKind).Process(inputFile, fileKind, outputDirectory);
            }
            catch (FileProcessorException)
            {
                destinationPath = m_FileProcessorFactory.ProvideProcessorForFile(FileKind.Unrecognized).Process(inputFile, FileKind.Unrecognized, outputDirectory);
            }
            catch (Exception e)
            {
                OnFileFailed(new FileEventArgs(inputFile.Name, subDirectory, e.Message));
            }

            if (File.Exists(destinationPath))
            {
                OnFileFailed(new FileEventArgs(inputFile.Name, subDirectory, $"{inputFile.Name} already exists in {subDirectory}"));
            }
            else
            {
                File.Copy(inputFile.FullName, destinationPath, false);
                OnFileCopied(new FileEventArgs(inputFile.Name, subDirectory));
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// アーカイブファイルからサムネイル用画像データを取得する
        /// </summary>
        /// <param name="path"></param>
        /// <param name="thumWidth"></param>
        /// <returns></returns>
        public static async Task <BitmapImage> GetFirstImageFromArchive(string path, int thumWidth)
        {
            BitmapImage bitmap  = null;
            StorageFile zipFile = await StorageFile.GetFileFromPathAsync(path);

            using (IRandomAccessStream randomStream = await zipFile.OpenReadAsync())
            {
                using (Stream stream = randomStream.AsStreamForRead())
                {
                    using (ZipArchive zipArchive = new ZipArchive(stream))
                    {
                        foreach (ZipArchiveEntry entry in zipArchive.Entries)
                        {
                            if (FileKind.IsImageFile(entry.FullName))
                            {
                                bitmap = await BitmapUtils.CreateBitmap(entry, thumWidth);

                                break;
                            }
                        }
                    }
                }
            }

            return(bitmap);
        }
 public ImageImporterTestFileDescription(string filename, DateTime dateDigitized, DateTime dateCreated, FileKind fileKind)
 {
     FileName      = filename;
     DateDigitized = dateDigitized;
     DateCreated   = dateCreated;
     FileKind      = fileKind;
 }
Exemplo n.º 5
0
        /// <summary>
        /// ZIPデータを読み込みファイル一覧を作成する
        /// </summary>
        /// <returns></returns>
        public async Task LoadDataAsync()
        {
            this.Dispose();
            this.m_dataList.Clear();

            StorageFile zipFile = await StorageFile.GetFileFromPathAsync(m_imageParam.Path);

            StorageHistoryManager.AddStorage(zipFile, StorageHistoryManager.DataType.Latest);
            this.ParentStorage = zipFile;

            IRandomAccessStream randomStream = await zipFile.OpenReadAsync();

            Stream stream = randomStream.AsStreamForRead();

            m_zipArchive = new ZipArchive(stream);
            foreach (ZipArchiveEntry entry in m_zipArchive.Entries)
            {
                if (FileKind.IsImageFile(entry.FullName))
                {
                    m_dataList.Add(entry);
                }
            }
            sortList(m_dataList);

            //名前の順に並び替え
            foreach (ZipArchiveEntry entry in m_dataList)
            {
                Debug.WriteLine(entry.Name);
            }
        }
        internal static FileEntry ToFile <T>(FileKind kind, T value)
        {
            var filename = FileEntry.GetFilenameForKind(kind);

            string output;

            if (Utilities.IsYamlFile(filename))
            {
                StringWriter tw = new StringWriter();
                YamlPocoSerializer.CanonicalWrite(tw, value);
                output = tw.ToString();
            }
            else
            {
                var jsonStr = JsonSerializer.Serialize(value, Utilities._jsonOpts);

                output = JsonNormalizer.Normalize(jsonStr);
            }

            var bytes = Encoding.UTF8.GetBytes(output);

            return(new FileEntry {
                Name = filename, RawBytes = bytes
            });
        }
        internal static FilePath GetFilenameForKind(FileKind kind)
        {
            string filename =
                (from kv in _fileKinds
                 where kv.Value == kind
                 select kv.Key).FirstOrDefault();

            return(FilePath.FromMsAppPath(filename));
        }
Exemplo n.º 8
0
        internal static string GetFilenameForKind(FileKind kind)
        {
            string filename =
                (from kv in _fileKinds
                 where kv.Value == kind
                 select kv.Key).FirstOrDefault();

            return(filename);
        }
Exemplo n.º 9
0
 /// <summary>
 /// Creates a concrete <see cref="IAsyncFile"/> instance. Throws on failure.
 /// </summary>
 /// <remarks>
 /// TODO: Currently returns a platform specific concrete instance of <see cref="IAsyncFile"/>
 /// </remarks>
 public static IAsyncFile CreateAsyncFile(
     SafeFileHandle handle,
     FileDesiredAccess access,
     bool ownsHandle,
     IIOCompletionManager ioCompletionManager = null,
     string path   = null,
     FileKind kind = FileKind.File)
 {
     return(OperatingSystemHelper.IsUnixOS
     ? (IAsyncFile) new AsyncFileUnix(handle, access, ownsHandle, path, kind)
     : (IAsyncFile) new AsyncFileWin(handle, access, ownsHandle, ioCompletionManager, path, kind));
 }
        public string GetExpectedPath(FileKind requiredFileKind)
        {
            var path = System.IO.Path.Combine(
                (requiredFileKind == FileKind.JpegImage || requiredFileKind == FileKind.RawImage ?
                 DateDigitized.Date.ToString("yyyy_MM_dd") :
                 DateCreated.Date.ToString("yyyy_MM_dd")),
                requiredFileKind.GetAttributeOfType <DescriptionAttribute>().Description,
                FileName
                );

            return(path);
        }
Exemplo n.º 11
0
        public static string[] GetFiles(string fileName, FileKind fileKind)
        {
            string        arguments = string.Format("{0} AND {1}", ParseFileKind(fileKind), ParseFileName(fileName));
            List <string> files     = new List <string>();

            files.AddRange(GetFiles(arguments));
            if (fileKind.HasFlag(FileKind.Apps))
            {
                files.AddRange(GetSystemFiles(fileName));
            }
            return(files.ToArray());
        }
Exemplo n.º 12
0
        internal static FileEntry ToFile <T>(FileKind kind, T value)
        {
            var filename = FileEntry.GetFilenameForKind(kind);

            var jsonStr = JsonSerializer.Serialize(value, Utilities._jsonOpts);

            jsonStr = JsonNormalizer.Normalize(jsonStr);

            var bytes = Encoding.UTF8.GetBytes(jsonStr);

            return(new FileEntry {
                Name = filename, RawBytes = bytes
            });
        }
Exemplo n.º 13
0
        public static async Task <BitmapImage> CreateBitmapFromArchiveCover(string path, int thumWidth)
        {
            StorageFolder folder = await EnvPath.GetArchiveCoverFolder();

            string       fileName  = EnvPath.GetArchiveCoverFileName(path);
            IStorageItem imageFile = await folder.TryGetItemAsync(fileName);

            if (imageFile == null)
            {
                using (await m_asyncLock.LockAsync())
                {
                    StorageFile coverFile = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);

                    StorageFile zipFile = await StorageFile.GetFileFromPathAsync(path);

                    using (IRandomAccessStream randomStream = await zipFile.OpenReadAsync())
                    {
                        using (Stream stream = randomStream.AsStreamForRead())
                        {
                            using (ZipArchive zipArchive = new ZipArchive(stream))
                            {
                                foreach (ZipArchiveEntry entry in zipArchive.Entries)
                                {
                                    if (FileKind.IsImageFile(entry.FullName))
                                    {
                                        /*
                                         * WriteableBitmap writeableBitmap = await createWriteableBitmap(entry);
                                         * await saveToJpegFile(writeableBitmap, coverFile);
                                         * imageFile = await folder.GetFileAsync(fileName);
                                         */
                                        imageFile = await SaveToFileFromZipEntry(entry, coverFile);

                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
            }

            if (imageFile != null)
            {
                return(await CreateThumbnailBitmap(imageFile, (uint)thumWidth));
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 14
0
        private static IEnumerable <LabeledText> SubRead(string file)
        {
            FileKind fileKind = FileKind.Unknown;

            using (var rd = new StreamReader(file))
            {
                var line = rd.ReadLine();
                //for (; ; )
                while (line != null)
                {
                    //if (line == null) break;
                    if (fileKind == FileKind.Unknown)
                    {
                        fileKind = line.Contains('\t') ? FileKind.LabeledTexts : FileKind.ListOfFiles;
                    }
                    if (fileKind == FileKind.ListOfFiles)
                    {
                        var langCode = line.Substring(0, line.IndexOf("_"));
                        using (var rd2 = new StreamReader(line))
                        {
                            for (; ;)
                            {
                                var text = rd2.ReadLine();
                                if (text == null)
                                {
                                    break;
                                }
                                yield return(new LabeledText {
                                    lang = langCode, text = text
                                });
                            }
                        }
                    }
                    else
                    {
                        var f = line.Split('\t');
                        //Debug.Assert(f.Length == 2);
                        yield return(new LabeledText {
                            lang = f[1], text = f[0]
                        });
                    }
                    line = rd.ReadLine();
                }
            }
        }
Exemplo n.º 15
0
 /// <summary>
 /// Creates an <see cref="AsyncFileWin"/> to wrap an existing native handle compatible with Windows based systems.
 /// </summary>
 public AsyncFileWin(
     SafeFileHandle handle,
     FileDesiredAccess access,
     bool ownsHandle,
     IIOCompletionManager ioCompletionManager = null,
     string path   = null,
     FileKind kind = FileKind.File)
 {
     Contract.Requires(handle != null);
     Contract.Requires(!handle.IsInvalid);
     m_handle              = handle;
     m_kind                = kind;
     m_path                = path;
     m_ownsHandle          = ownsHandle;
     m_access              = access;
     m_ioCompletionManager = (IOCompletionManager)(ioCompletionManager ?? IOCompletionManager.Instance);
     m_ioCompletionManager.BindFileHandle(handle);
 }
        /// <summary>
        /// Provides a processor for a specified file kind
        /// </summary>
        /// <param name="fileKind">File kind to process</param>
        /// <returns>File processor</returns>
        public IFileProcessor ProvideProcessorForFile(FileKind fileKind)
        {
            switch (fileKind)
            {
            case FileKind.Unrecognized:
                return(m_FileProcessors.OfType <GenericFileProcessor>().First());

            case FileKind.RawImage:
            case FileKind.JpegImage:
                return(m_FileProcessors.OfType <ExifFileProcessor>().First());

            case FileKind.Video:
                return(m_FileProcessors.OfType <QuickTimeFileProcessor>().First());

            default:
                return(m_FileProcessors.OfType <NullFileProcessor>().First());
            }
        }
Exemplo n.º 17
0
        static string ParseFileKind(FileKind kind)
        {
            if (kind == FileKind.Unknown)
            {
                return("");
            }
            FileKind[] kinds = ((FileKind[])Enum.GetValues(typeof(FileKind))).Where(x => kind.HasFlag(x)).ToArray();
            kinds = kinds.Where(x => x != FileKind.All).ToArray();
            string parseKind = string.Empty;

            for (int i = 0; i < kinds.Length; i++)
            {
                if (kinds[i] == FileKind.Apps)
                {
                    parseKind += "kind:program";
                }
                else if (kinds[i] == FileKind.Documents)
                {
                    parseKind += "kind:docs";
                }
                else if (kinds[i] == FileKind.Music)
                {
                    parseKind += "kind:music";
                }
                else if (kinds[i] == FileKind.Photos)
                {
                    parseKind += "kind:pics";
                }
                else if (kinds[i] == FileKind.Videos)
                {
                    parseKind += "kind:video";
                }
                else if (kinds[i] == FileKind.Folder)
                {
                    parseKind += "kind:folder";
                }

                if (i < kinds.Length - 1)
                {
                    parseKind += " OR ";
                }
            }
            return(parseKind);
        }
Exemplo n.º 18
0
        public FileDescriptor GetDescriptorForRequest(Uri uri)
        {
            FileKind type     = GetFileKindForUri(uri);
            string   fileName = GetFileNameForType(type);
            string   fullPath = Path.Combine(StoragePath, fileName);

            if (type == FileKind.Index)
            {
                return(new FileDescriptor
                {
                    FilePath = fullPath,
                    IsExist = _fileSystem.ExistsFile(fullPath),
                    MimeType = "text/html"
                });
            }
            return(new FileDescriptor
            {
                FilePath = fullPath,
                IsExist = _fileSystem.ExistsFile(fullPath),
                MimeType = "application/octet-stream"
            });
        }
Exemplo n.º 19
0
        /// <inheritdoc />
        public override string Process(FileInfo inputFile, FileKind fileKind, string outputDirectory)
        {
            DateTime dateTimeTaken = DateTime.Now;

            try
            {
                var metadataDirectories = ImageMetadataReader.ReadMetadata(inputFile.FullName);
                try
                {
                    // try getting date and time from DateTimeDigitezed tag
                    var tagCollection = metadataDirectories.OfType <ExifSubIfdDirectory>().FirstOrDefault();
                    dateTimeTaken = tagCollection.GetDateTime(ExifSubIfdDirectory.TagDateTimeDigitized);
                }
                catch (MetadataException)
                {
                    try
                    {
                        // if no DateTimeDigitized tag found - try getting date and time from DateTime tag
                        var tagCollection = metadataDirectories.OfType <ExifDirectoryBase>().FirstOrDefault();
                        dateTimeTaken = tagCollection.GetDateTime(ExifDirectoryBase.TagDateTime);
                    }
                    catch (MetadataException)
                    {
                        // if no DateTime tag found - try to guess the date from file name
                        var dateFileNamePart = inputFile.Name.Split('_')[0];
                        dateTimeTaken = DateTime.ParseExact(dateFileNamePart, "yyyyMMdd", CultureInfo.InvariantCulture);
                    }
                }
                catch (Exception)
                {
                    throw;
                }
                return(CreateDestinationPath(outputDirectory, dateTimeTaken.Date.ToString("yyyy_MM_dd"), fileKind.GetAttributeOfType <DescriptionAttribute>().Description, inputFile.Name));
            }
            catch (Exception e)
            {
                throw new FileProcessorException($"Cannot read EXIF metadata from {inputFile.FullName}", e);
            }
        }
Exemplo n.º 20
0
        public string GetFullFilePath(FileKind fileKind, string heroName, string fileSuffix = "")//, string fileName)
        {
            if (fileKind == FileKind.Options)
            {
                return(GamePath);
            }
            List <string> parts = new List <string>();
            var           path  = GetFilesPath(heroName);

            parts.Add(path);
            //if (supportManyLevels && fileKind == FileKind.GameLevel)
            if (GameLevelsFolder.Any() && fileKind == FileKind.GameLevel)
            {
                parts.Add(GameLevelsFolder);
            }

            var fileName = fileKind.ToString() + fileSuffix + extension;

            parts.Add(fileName);

            return(Path.Combine(parts.ToArray()));
        }
Exemplo n.º 21
0
        private static string GetUriForFileType(FileKind type)
        {
            switch (type)
            {
            case FileKind.Client:
                return(ClientUri);

            case FileKind.NetFramework:
                return(NetFrameworkUri);

            case FileKind.GoogleChrome:
                return(ChromeUri);

            case FileKind.ExamBrowser:
                return(ExambroUri);

            case FileKind.Index:
                return("");

            default:
                throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }
        }
Exemplo n.º 22
0
        private string GetFileNameForType(FileKind type)
        {
            switch (type)
            {
            case FileKind.Client:
                return("UNBKGoClient.zip");

            case FileKind.NetFramework:
                return("NetFxSetup.exe");

            case FileKind.GoogleChrome:
                return("ChromeSetup.exe");

            case FileKind.ExamBrowser:
                return("Exambro.zip");

            case FileKind.Index:
                return("index.html");

            default:
                throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }
        }
Exemplo n.º 23
0
        /// <summary>
        /// Creates an <see cref="AsyncFileUnix"/> to wrap an existing native handle compatible with Unix based systems.
        /// </summary>
        public AsyncFileUnix(
            SafeFileHandle handle,
            FileDesiredAccess access,
            bool ownsHandle,
            string path   = null,
            FileKind kind = FileKind.File)
        {
            Contract.Requires(handle != null);
            Contract.Requires(!handle.IsInvalid);
            m_handle     = handle;
            m_kind       = kind;
            m_path       = path;
            m_ownsHandle = ownsHandle;
            m_access     = access;

            m_fileStream = new FileStream(
                m_path,
                FileMode.Open,
                FileDesiredAccessToFileAccess(access),
                FileShare.ReadWrite,
                DefaultBufferSize,
                FileOptions.Asynchronous);
        }
Exemplo n.º 24
0
 public FilePathEffect(string path, FileKind kind)
 {
     Path = path;
     Kind = kind;
 }
Exemplo n.º 25
0
        public void WriteAllJson <T>(string subdir, FileKind kind, T obj)
        {
            var filename = FileEntry.GetFilenameForKind(kind);

            WriteAllJson(subdir, filename, obj);
        }
Exemplo n.º 26
0
 public DeleteFileEffect(string path, FileKind kind) : base(path, kind)
 {
 }
Exemplo n.º 27
0
 public GetFileLastWriteTimeEffect(string path, FileKind kind) : base(path, kind)
 {
 }
Exemplo n.º 28
0
 public GetFileCreationTimeEffect(string path, FileKind kind) : base(path, kind)
 {
 }
Exemplo n.º 29
0
 public GetFileExistsEffect(string path, FileKind kind) : base(path, kind)
 {
 }
Exemplo n.º 30
0
 public GetPhysicalPathEffect(string path, FileKind kind) : base(path, kind)
 {
 }