Пример #1
0
 private static void TranslateFileSystemInfo(FlacFsObjectInfo fsoi, FileInformation fi)
 {
     fi.Attributes = fsoi.Attributes;
     fi.CreationTime = fsoi.CreationTime;
     fi.LastAccessTime = fsoi.LastAccessTime;
     fi.LastWriteTime = fsoi.LastWriteTime;
     fi.Length = fsoi.Length;
     fi.FileName = fsoi.Name;
 }
Пример #2
0
        public FlacFsObjectInfo[] ListDirectoryContents(string relativePath)
        {
            string fullPath = GetPath(relativePath);

            if (!Directory.Exists(fullPath))
            {
                return null;
            }

            List<FlacFsObjectInfo> entries = new List<FlacFsObjectInfo>();

            DirectoryInfo parent = new DirectoryInfo(fullPath);
            DirectoryInfo [] directories = parent.GetDirectories();
            foreach(DirectoryInfo di in directories)
            {
                FlacFsObjectInfo fsoi = new FlacFsObjectInfo(di);
                entries.Add(fsoi);
            }

            ListDirectoryFiles(parent);

            lock (directoryLookup_)
            {
                string key = KeyFromPath(parent.FullName);
                if (directoryLookup_.ContainsKey(key))
                {
                    FileInfo fi = null;
                    VirtualTrack[] tracks = directoryLookup_[key];
                    foreach (VirtualTrack vt in tracks)
                    {
                        if (fi == null)
                        {
                            fi = new FileInfo(Path.Combine(parent.FullName, vt.ImageFile));
                        }

                        FlacFsObjectInfo fsoi = new FlacFsObjectInfo(fi, vt);
                        entries.Add(fsoi);
                    }
                }
            }
            return entries.ToArray();
        }