C# FileStream.Seek的代码示例

通过代码示例来学习C# FileStream.Seek方法

通过代码示例来学习编程是非常高效的。
1. 代码示例提供了一个具体而直观的学习环境,使初学者能够立即看到编程概念和语法的实际应用。
2. 通过分析和模仿现有的代码实例,初学者可以更好地理解编程逻辑和算法的工作原理。
3. 代码实例往往涵盖了多种编程技巧和最佳实践,通过学习和模仿这些实例,学习者可以逐步掌握如何编写高效、可读性强和可维护的代码。这对于初学者来说,是一种快速提升编程水平的有效途径。


FileStream.Seek是C#的System.IO命名空间下中的一个方法, 小编为大家找了一些网络大拿们常见的代码示例,源码中的FileStream.Seek() 已经帮大家高亮显示了,大家可以重点学习FileStream.Seek() 方法的写法,从而快速掌握该方法的应用。

FileStream.Seek的代码示例1 - GetEmbeddedData()

    using System.IO;

        /// 
        /// Extracts the data embedded into MSI (into Binary table).
        /// 
        /// The session.
        /// The name on resource in the Binary table.
        /// 
        public static byte[] GetEmbeddedData(this Session session, string binary)
        {
            //If binary is accessed this way it will raise "stream handle is not valid" exception
            //object result = session.Database.ExecuteScalar("select Data from Binary where Name = 'Fake_CRT.msi'");
            //Stream s = (Stream)result;
            //using (FileStream fs = new FileStream(@"....\Wix# Samples\Simplified Bootstrapper\Fake CRT1.msi", FileMode.Create))
            //{
            //    int Length = 256;
            //    var buffer = new Byte[Length];
            //    int bytesRead = s.Read(buffer, 0, Length);
            //    while (bytesRead > 0)
            //    {
            //        fs.Write(buffer, 0, bytesRead);
            //        bytesRead = s.Read(buffer, 0, Length);
            //    }
            //}

            //however View approach is OK
            using (var sql = session.Database.OpenView("select Data from Binary where Name = '" + binary + "'"))
            {
                sql.Execute();

                using (var record = sql.Fetch())
                using (var stream = record.GetStream(1))
                using (var ms = new IO.MemoryStream())
                {
                    int Length = 256;
                    var buffer = new Byte[Length];
                    int bytesRead = stream.Read(buffer, 0, Length);
                    while (bytesRead > 0)
                    {
                        ms.Write(buffer, 0, bytesRead);
                        bytesRead = stream.Read(buffer, 0, Length);
                    }
                    ms.Seek(0, IO.SeekOrigin.Begin);
                    return ms.ToArray();
                }
            }
        }
    

开发者ID:oleg-shilo,项目名称:wixsharp,代码行数:47,代码来源:Extensions.cs

在GetEmbeddedData()方法中,FileStream的代码示例类中的Seek的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

FileStream.Seek的代码示例2 - AddBoardsToSet()

    using System.IO;

        public void AddBoardsToSet(List FileList, ProgressLog Logger , bool fixgroup = true, bool forcezerowidth = false)
        {
            Logger.PushActivity("AddBoardsToSet");
            foreach (var a in FileList)
            {
                Logger.AddString(String.Format("adding {0}", a));
                BoardSide aSide = BoardSide.Unknown;
                BoardLayer aLayer = BoardLayer.Unknown;
                string ext = Path.GetExtension(a);
                if (ext == ".zip")
                {
                    using (ZipFile zip1 = ZipFile.Read(a))
                    {
                        foreach (ZipEntry e in zip1)
                        {
                            MemoryStream MS = new MemoryStream();
                            if (e.IsDirectory == false)
                            {
                                //                              e.Extract(MS);
                                //                                MS.Seek(0, SeekOrigin.Begin);
                                Gerber.DetermineBoardSideAndLayer(e.FileName, out aSide, out aLayer);
                                if (aLayer == BoardLayer.Outline) hasgko = true;

                                //     AddFileStream(MS, e.FileName, drillscaler);
                            }
                        }
                    }
                }
                else
                {

                    Gerber.DetermineBoardSideAndLayer(a, out aSide, out aLayer);
                }
                if (aLayer == BoardLayer.Outline) hasgko = true;
            }

            foreach (var a in FileList)
            {
                if (Logger != null) Logger.AddString(String.Format("Loading {0}", Path.GetFileName(a)));
                string ext = Path.GetExtension(a);
                if (ext == ".zip")
                {
                    using (ZipFile zip1 = ZipFile.Read(a))
                    {
                        foreach (ZipEntry e in zip1)
                        {
                            MemoryStream MS = new MemoryStream();
                            if (e.IsDirectory == false)
                            {
                                if (Logger != null) Logger.AddString(String.Format("Loading inside zip: {0}", Path.GetFileName(e.FileName)));

                                e.Extract(MS);
                                MS.Seek(0, SeekOrigin.Begin);
                                AddFileToSet(MS, e.FileName, Logger, 1, forcezerowidth);
                            }
                        }
                    }
                }
                else
                {
                    try
                    {
                        MemoryStream MS2 = new MemoryStream();
                        FileStream FS = File.OpenRead(a);
                        FS.CopyTo(MS2);
                        MS2.Seek(0, SeekOrigin.Begin);
                        AddFileToSet(MS2, a, Logger,1, forcezerowidth);
                    }
                    catch (Exception E)
                    {
                        Logger.AddString(String.Format("Failed to add file! {0},{1}", a, E));
                    }
                }
            }

            if (fixgroup)
            {
                if (Logger != null) Logger.AddString("Checking for common file format mistakes.");
                FixEagleDrillExportIssues(Logger);
                CheckRelativeBoundingBoxes(Logger);
                CheckForOutlineFiles(Logger);

                CheckRelativeBoundingBoxes(Logger);

            }

            Logger.PopActivity();
        }
    

开发者ID:ThisIsNotRocketScience,项目名称:GerberTools,代码行数:90,代码来源:ImageCreator.cs

在AddBoardsToSet()方法中,FileStream的代码示例类中的Seek的代码示例方法一共出现了3次, 见黄色背景高亮显示的地方,欢迎大家点赞

FileStream.Seek的代码示例3 - AddFile()

    using System.IO;

        public void AddFile(ProgressLog log, string filename, double drillscaler = 1.0)
        {

            string[] filesplit = filename.Split('.');
            string ext = filesplit[filesplit.Count() - 1].ToLower();
            if (ext == "zip")
            {
                using (ZipFile zip1 = ZipFile.Read(filename))
                {
                    foreach (ZipEntry e in zip1)
                    {
                        MemoryStream MS = new MemoryStream();
                        if (e.IsDirectory == false)
                        {
                            e.Extract(MS);
                            MS.Seek(0, SeekOrigin.Begin);
                            AddFileStream(log, MS, e.FileName, drillscaler);
                        }
                    }
                }
                return;

            }


            MemoryStream MS2 = new MemoryStream();
            FileStream FS = File.OpenRead(filename);
            FS.CopyTo(MS2);
            MS2.Seek(0, SeekOrigin.Begin);
            AddFileStream(log, MS2, filename, drillscaler);

        }
    

开发者ID:ThisIsNotRocketScience,项目名称:GerberTools,代码行数:34,代码来源:LoadedStuff.cs

在AddFile()方法中,FileStream的代码示例类中的Seek的代码示例方法一共出现了2次, 见黄色背景高亮显示的地方,欢迎大家点赞

FileStream.Seek的代码示例4 - AddBoardsToSet()

    using System.IO;

        public void AddBoardsToSet(List FileList, bool fixgroup = true, ProgressLog Logger = null)
        {
            foreach (var a in FileList)
            {
                BoardSide aSide = BoardSide.Unknown;
                BoardLayer aLayer = BoardLayer.Unknown;
                string ext = Path.GetExtension(a);
                if (ext == ".zip")
                {
                    using (ZipFile zip1 = ZipFile.Read(a))
                    {
                        foreach (ZipEntry e in zip1)
                        {
                            MemoryStream MS = new MemoryStream();
                            if (e.IsDirectory == false)
                            {
                                //                              e.Extract(MS);
                                //                                MS.Seek(0, SeekOrigin.Begin);
                                Gerber.DetermineBoardSideAndLayer(e.FileName, out aSide, out aLayer);
                                if (aLayer == BoardLayer.Outline) HasLoadedOutline = true;

                                //     AddFileStream(MS, e.FileName, drillscaler);
                            }
                        }
                    }
                }
                else
                {

                    Gerber.DetermineBoardSideAndLayer(a, out aSide, out aLayer);
                }
                if (aLayer == BoardLayer.Outline) HasLoadedOutline = true;
            }

            foreach (var a in FileList)
            {
                if (Logger != null) Logger.AddString(String.Format("Loading {0}", Path.GetFileName(a)));
                string ext = Path.GetExtension(a);
                if (ext == ".zip")
                {
                    using (ZipFile zip1 = ZipFile.Read(a))
                    {
                        foreach (ZipEntry e in zip1)
                        {
                            MemoryStream MS = new MemoryStream();
                            if (e.IsDirectory == false)
                            {
                                if (Logger != null) Logger.AddString(String.Format("Loading inside zip: {0}", Path.GetFileName(e.FileName)));

                                e.Extract(MS);
                                MS.Seek(0, SeekOrigin.Begin);
                                AddFileToSet(MS, e.FileName, Logger);
                            }
                        }
                    }
                }
                else
                {
                    MemoryStream MS2 = new MemoryStream();
                    FileStream FS = File.OpenRead(a);
                    FS.CopyTo(MS2);
                    MS2.Seek(0, SeekOrigin.Begin);
                    AddFileToSet(MS2, a, Logger);
                }
            }

            if (fixgroup)
            {
                if (Logger != null) Logger.AddString("Checking for common file format mistakes.");
                FixEagleDrillExportIssues(Logger);
                CheckRelativeBoundingBoxes(Logger);
                CheckForOutlineFiles(Logger);

                CheckRelativeBoundingBoxes(Logger);

            }
        }
    

开发者ID:ThisIsNotRocketScience,项目名称:GerberTools,代码行数:79,代码来源:SickOfBeige.cs

在AddBoardsToSet()方法中,FileStream的代码示例类中的Seek的代码示例方法一共出现了3次, 见黄色背景高亮显示的地方,欢迎大家点赞

FileStream.Seek的代码示例5 - GetBeaconsFromFile()

    using System.IO;

        /// 
        /// Get Cobalt Strike Configurations from a file and output their contents to the console . 
        /// 
        /// Name of memory/dump file to be scanned for Cobalt Strike beacons
        private static void GetBeaconsFromFile(string fileName)
        {
            OutputMessageToConsole(LogLevel.Info, $"Scanning file: {fileName}");
            List beacons = new List();

            if (File.Exists(fileName))
            {
                // Check the size of the file. If > 500MB, and notify that scanning will take time
                var fileSize = new FileInfo(fileName).Length;
                if (fileSize > Int32.MaxValue)
                {
                    OutputMessageToConsole(LogLevel.Warn, $"\tFile is large: {fileSize / (1024 * 1024)} MB. Scanning will be slow.");
                }

                // Yara scan the file and return any matches
                List beaconMatches = CobaltStrikeScan.YaraScanFile(fileName, opts.Verbose);

                // Extract config bytes at each match offset and parse the beacon config from them
                if (beaconMatches.Count > 0)
                {
                    if (opts.Verbose)
                    {
                        OutputMessageToConsole(LogLevel.Info, $"\t{beaconMatches.Count} Signature(s) detected in file. Attempting to extract and parse config...\n");
                    }
                    foreach (BeaconMatch match in beaconMatches)
                    {
                        try
                        {
                            byte[] beaconConfigBytes = new byte[4096];
                            // Get a byte array from the offset of the file with beacon matches to avoid cases
                            // where the file is too big to read in to a File object
                            using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
                            {
                                fileStream.Seek((long)match.Offset, SeekOrigin.Begin);
                                fileStream.Read(beaconConfigBytes, 0, 4096);
                            }
                            match.Offset = 0;
                            beacons.Add(new Beacon(beaconConfigBytes, match.Offset, match.Version));
                        }
                        catch (System.IO.IOException)
                        {
                            /* 
                            if (opts.Verbose)
                            {
                                OutputMessageToConsole(LogLevel.Error, $"Error extracting signatured data from file at offset: {match.Offset}");
                            }
                            */
                        }
                    }

                    if (beacons.Count > 0)
                    {
                        foreach (Beacon beacon in beacons)
                        {
                            if (beacon.isValidBeacon())
                            {
                                OutputMessageToConsole(LogLevel.Success, $"Cobalt Strike Beacon Configuration\n");
                                beacon.OutputToConsole();
                            }
                        }
                    }
                    else
                        OutputBeaconNotFoundMessage();
                }
                else { OutputBeaconNotFoundMessage(); }
            }
            else
            {
                OutputMessageToConsole(LogLevel.Error, $"File doesn't exist: {fileName}\nExiting...");
                System.Environment.Exit(1);
            }        
        }
    

开发者ID:Apr4h,项目名称:CobaltStrikeScan,代码行数:78,代码来源:ConsoleUI.cs

在GetBeaconsFromFile()方法中,FileStream的代码示例类中的Seek的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

FileStream.Seek的代码示例6 - WriteFile()

    using System.IO;

        //Saving memory stream to a new file with the given path
        private static bool WriteFile(MemoryStream InputStream, string path)
        {
            if (File.Exists(path))
                File.Delete(path);

            if (!File.Exists(path))
            {
                try
                {
                    using (FileStream fs = File.Create(path))
                    {
                        InputStream.Seek(0, SeekOrigin.Begin);
                        InputStream.CopyTo(fs);
                    }
                    return true;
                }
                catch (Exception e)
                {
                    Console.WriteLine("The following exception was thrown during creation and writing to the file \"{0}\"", path);
                    Console.WriteLine(e.Message);
                    return false;
                }
            }
            else
            {
                Console.WriteLine("Can not create file \"{0}\". File already exists", path);
                return false;

            }
        }
    

开发者ID:Cinchoo,项目名称:ChoETL,代码行数:33,代码来源:Program.cs

在WriteFile()方法中,FileStream的代码示例类中的Seek的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

FileStream.Seek的代码示例7 - Compile()

    using System.IO;

        private Assembly Compile(IBuilderContext builderContext, IEnumerable syntaxTrees, string libraryFile, HashSet fileReferences)
        {
            // Add references
            var metadataReferences = new List();

            foreach (var reference in fileReferences.Where(r => !string.IsNullOrEmpty(r)))
            {
                // Skip references that are already provided by the runtime
                if (BasicReferenceAssemblies.All.Any(a => string.Equals(Path.GetFileName(reference), a.FilePath, StringComparison.OrdinalIgnoreCase)))
                    continue;
                metadataReferences.Add(MetadataReference.CreateFromFile(reference));
            }

            metadataReferences.AddRange(BasicReferenceAssemblies.All);

            // suppress assembly redirect warnings
            // cf. https://github.com/dotnet/roslyn/issues/19640
            var noWarn = new List>
            {
                new KeyValuePair("CS1701", ReportDiagnostic.Suppress),
                new KeyValuePair("CS1702", ReportDiagnostic.Suppress),
            };

            // Compile
            var compilationOptions = new CSharpCompilationOptions(
                OutputKind.DynamicallyLinkedLibrary,
                optimizationLevel: (builderContext == null || builderContext.DebugScripts) ? OptimizationLevel.Debug : OptimizationLevel.Release,
                warningLevel: 4,
                specificDiagnosticOptions: noWarn,
                deterministic: true
            );

            var assemblyName = libraryFile != null ? Path.GetFileNameWithoutExtension(libraryFile) : $"Sharpmake_{new Random().Next():X8}" + GetHashCode();
            var compilation = CSharpCompilation.Create(assemblyName, syntaxTrees, metadataReferences, compilationOptions);
            string pdbFilePath = libraryFile != null ? Path.ChangeExtension(libraryFile, ".pdb") : null;

            using (var dllStream = new MemoryStream())
            using (var pdbStream = new MemoryStream())
            {
                EmitResult result = compilation.Emit(
                    dllStream,
                    pdbStream,
                    options: new EmitOptions(
                        debugInformationFormat: DebugInformationFormat.PortablePdb,
                        pdbFilePath: pdbFilePath
                    )
                );

                bool throwErrorException = builderContext == null || builderContext.CompileErrorBehavior == BuilderCompileErrorBehavior.ThrowException;
                LogCompilationResult(result, throwErrorException);

                if (result.Success)
                {
                    if (libraryFile != null)
                    {
                        dllStream.Seek(0, SeekOrigin.Begin);
                        using (var fileStream = new FileStream(libraryFile, FileMode.Create))
                            dllStream.CopyTo(fileStream);

                        pdbStream.Seek(0, SeekOrigin.Begin);
                        using (var pdbFileStream = new FileStream(pdbFilePath, FileMode.Create))
                            pdbStream.CopyTo(pdbFileStream);

                        return Assembly.LoadFrom(libraryFile);
                    }

                    return Assembly.Load(dllStream.GetBuffer(), pdbStream.GetBuffer());
                }
            }

            return null;
        }
    

开发者ID:ubisoft,项目名称:Sharpmake,代码行数:74,代码来源:Assembler.cs

在Compile()方法中,FileStream的代码示例类中的Seek的代码示例方法一共出现了2次, 见黄色背景高亮显示的地方,欢迎大家点赞

FileStream.Seek的代码示例8 - CreateFileAppender()

    using System.IO;
        /// 
        /// open a stream with optional trim extra blank lines
        /// 
        /// Filename to open
        /// encoding of the file
        /// do we trim blank lines from end?
        /// do we close stream after trimming
        /// Buffer size to read
        /// TextWriter ready to write to
        internal static TextWriter CreateFileAppender(string fileName,
            Encoding encode,
            bool correctEnd,
            bool disposeStream,
            int bufferSize)
        {
            TextWriter res;

            if (correctEnd) {
                FileStream fs = null;

                try {
                    fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);

                    //bool CarriageReturn = false;
                    //bool LineFeed = false;

                    // read the file backwards using SeekOrigin.Begin...
                    long offset;
                    for (offset = fs.Length - 1; offset >= 0; offset--) {
                        fs.Seek(offset, SeekOrigin.Begin);
                        int value = fs.ReadByte();
                        if (value == '\r') {
                        }
                        else if (value == '\n') {
                        }
                        else
                            break;
                    }
                    if (offset >= 0) // read something else other than line ends...
                    {
                        var newLine = Environment.NewLine;
                        var newline = new byte[newLine.Length];
                        int count = 0;
                        foreach (var ch in newLine) {
                            newline[count] = Convert.ToByte(ch);
                            count++;
                        }
                        // Console.WriteLine(" value {0} count {1}\n", newline.Length, count);

                        fs.Write(newline, 0, count);
                    }
                    res = new StreamWriter(fs, encode, bufferSize);
                }
                finally {
                    if (disposeStream && fs != null)
                        fs.Close();
                }
            }
            else
                res = new StreamWriter(fileName, true, encode, bufferSize);
            return res;
        }
    

开发者ID:MarcosMeli,项目名称:FileHelpers,代码行数:63,代码来源:StreamHelper.cs

在CreateFileAppender()方法中,FileStream的代码示例类中的Seek的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞

本文中的FileStream.Seek方法示例由csref.cn整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。