public object WriteFilesByFSDDL(string root, string fsddl, string encodingName) { if (this.EnableTracing) { TracingHelper.Trace(new object[] { root, fsddl, encodingName }, this.TraceSourceName); } DataIntegrator.Descriptions.FileSystem.FSDDL.Directory directory = Utility.XmlDeserialize(fsddl, typeof(DataIntegrator.Descriptions.FileSystem.FSDDL.Directory), new Type[] { typeof(DataIntegrator.Descriptions.FileSystem.FSDDL.File) }, encodingName) as DataIntegrator.Descriptions.FileSystem.FSDDL.Directory; if (this.EnableTracing) { TracingHelper.Trace(new object[] { directory }, this.TraceSourceName); } return(this.WriteFiles(root, directory)); }
public object WriteFiles(string root, DataIntegrator.Descriptions.FileSystem.FSDDL.Directory directory) { if (this.EnableTracing) { TracingHelper.Trace(new object[] { root, directory }, this.TraceSourceName); } System.IO.DirectoryInfo directoryInfo = null; if (!System.IO.Directory.Exists(root)) { directoryInfo = System.IO.Directory.CreateDirectory(root); } else { directoryInfo = new DirectoryInfo(root); } directoryInfo = directoryInfo.CreateSubdirectory(directory.Name); if ((directory.Files != null) && (directory.Files.Count > 0)) { foreach (DataIntegrator.Descriptions.FileSystem.FSDDL.File file in directory.Files) { string fileAbsolutePath = directoryInfo.FullName + "\\" + file.Name; using (System.IO.FileStream fileStream = new FileStream(fileAbsolutePath, FileMode.Create, FileAccess.Write, FileShare.Write)) { fileStream.Write(file.Content, 0, file.Content.Length); fileStream.Flush(); } } } if ((directory.Directories != null) && (directory.Directories.Count > 0)) { foreach (DataIntegrator.Descriptions.FileSystem.FSDDL.Directory dir in directory.Directories) { this.WriteFiles(directoryInfo.FullName, dir); } } return(directoryInfo); }
public DataIntegrator.Descriptions.FileSystem.FSDDL.Directory ListFiles(string root, string searchPattern) { if (this.EnableTracing) { TracingHelper.Trace(new object[] { root, searchPattern }, this.TraceSourceName); } DataIntegrator.Descriptions.FileSystem.FSDDL.Directory directory = null; string[] fileNames = System.IO.Directory.GetFiles(root, searchPattern, SearchOption.TopDirectoryOnly); string[] directoryNames = System.IO.Directory.GetDirectories(root, "*", SearchOption.TopDirectoryOnly); if (this.EnableTracing) { TracingHelper.Trace(new object[] { fileNames, directoryNames }, this.TraceSourceName); } directory = new Descriptions.FileSystem.FSDDL.Directory(); System.IO.DirectoryInfo directoryInfo = new DirectoryInfo(root); directory.Name = directoryInfo.Name; if ((fileNames != null) && (fileNames.Length > 0)) { directory.Files = new List <Descriptions.FileSystem.FSDDL.File>(); foreach (string fileName in fileNames) { byte[] fileBytes = new byte[1024]; FileInfo fileInfo = new FileInfo(fileName); using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read)) { fileStream.Read(fileBytes, 0, ((int)(fileStream.Length))); directory.Files.Add(new Descriptions.FileSystem.FSDDL.File() { Name = fileInfo.Name, Content = fileBytes, Size = ((int)(fileInfo.Length)) }); } } } if ((directoryNames != null) && (directoryNames.Length > 0)) { directory.Directories = new List <Descriptions.FileSystem.FSDDL.Directory>(); foreach (string directoryName in directoryNames) { directory.Directories.Add(this.ListFiles(directoryName, searchPattern)); } } if (this.EnableTracing) { TracingHelper.Trace(new object[] { directory }, this.TraceSourceName); } return(directory); }