public PackageFolderVM(ExplorerTreeNodeVM parent, string packageFile, string localPath) : base(parent, UnifiedPath.Combine(packageFile, localPath), UnifiedPath.GetFileName(localPath)) { this.LocalPath = localPath; this.PackagePath = packageFile; _childEntries = new List <ZipEntry>(); }
private DocumentInfo CreateDocument(Guid guid, Uri uri, IFileViewerService fileViewerService) { IFeature[] features; var viewer = fileViewerService.CreateViewer(uri.LocalPath, out features); var document = new DocumentInfo(guid: guid, repositoryId: this.RepositoryManager.FindOwner(uri.LocalPath).ID, uri: uri, title: UnifiedPath.GetFileName(uri.LocalPath), content: viewer, features: features) { Description = uri.LocalPath, IconSource = this.RepositoryManager.FindOwner(uri.LocalPath).GetMarker() }; return(document); }
public FileVM(ExplorerTreeNodeVM parent, string path) : this(parent, path, UnifiedPath.GetFileName(path)) { }
public static string Decode(string path, out EncodeType encodeType, bool wellFormatted = false) { var packedFileName = UnifiedPath.GetFileName(path).ToLower(); using (var stream = UnifiedFile.OpenRead(path)) { using (BinaryReader reader = new BinaryReader(stream)) { Int32 header = reader.ReadInt32(); if (header == PackedSection.PackedHeader) { reader.ReadSByte(); var document = new XmlDocument(); var packedSection = new PackedSection(); var dictionary = packedSection.readDictionary(reader); var xmlroot = document.CreateNode(XmlNodeType.Element, packedFileName, ""); packedSection.readElement(reader, xmlroot, document, dictionary); document.AppendChild(xmlroot); encodeType = EncodeType.Packed; if (wellFormatted) { return(XmlDecoder.FormatXml(document.OuterXml)); } else { return(document.OuterXml); } } else if (header == BinaryHeader) { stream.Seek(0, SeekOrigin.Begin); var document = new XmlDocument(); var xmlPrimitives = document.CreateNode(XmlNodeType.Element, "primitives", ""); var primitiveReader = new PrimitiveReader(); primitiveReader.ReadPrimitives(reader, xmlPrimitives, document); document.AppendChild(xmlPrimitives); encodeType = EncodeType.Binary; if (wellFormatted) { return(XmlDecoder.FormatXml(document.OuterXml)); } else { return(document.OuterXml); } } else { var extension = UnifiedPath.GetExtension(path); if (extension == ".xml" || extension == ".def" || extension == ".visual" || extension == ".chunk" || extension == ".settings" || extension == ".model") { encodeType = EncodeType.Plain; return(File.ReadAllText(path)); } else { throw new NotSupportedException(); } } } } }