Exemple #1
0
        private static void ExampleB()
        {
            string           filePath   = "H:\\mine2\\MyApi\\src\\MyWebApi\\DtoLib\\File\\FileFileCreate.txt";
            CreateFileConfig fileConfig = new CreateFileConfig()
            {
                FileName  = "FileFileCreate.txt",
                IsAsync   = false,
                CreateUrl = filePath
            };

            CopyFileConfig copyConfig = new CopyFileConfig()
            {
                OriginalFileUrl    = "H:\\mine2\\MyApi\\src\\MyWebApi\\DtoLib\\File\\FileFileCreate.txt",
                DestinationFileUrl = "H:\\mine2\\MyApi\\src\\MyWebApi\\DtoLib\\File\\FileFileCreate2.txt",
                IsAsync            = true
            };

            FileStreamTest fs = new FileStreamTest();

            fs.Create(fileConfig);

            fs.Copy(copyConfig);
        }
Exemple #2
0
        public void Create(IFileConfig config)
        {
            lock (_lockObject)
            {
                CreateFileConfig fileConfig = config as CreateFileConfig;
                if (this.CheckConfigIsError(fileConfig))
                {
                    return;
                }

                char[] insertContent    = "HelloWorld".ToCharArray();
                byte[] byteArrayContent = Encoding.Default.GetBytes(insertContent, 0, insertContent.Length);

                FileStream fs = fileConfig.IsAsync
                    ? new FileStream(fileConfig.CreateUrl, FileMode.Create, FileAccess.ReadWrite, FileShare.None, 4096, true)
                    : new FileStream(fileConfig.CreateUrl, FileMode.Create);

                using (fs)
                {
                    // 如果不注释下面代码会抛出异常,google上提示是WriteTimeout只支持网络流
                    //fs.WriteTimeout = WriteTimeout;
                    if (fs.CanWrite && !fs.IsAsync)
                    {
                        fs.Write(byteArrayContent, 0, byteArrayContent.Length);
                    }
                    else if (fs.CanWrite)
                    {
                        fs.BeginWrite(byteArrayContent, 0, byteArrayContent.Length, End_CreateFileCallBack, fs);
                    }

                    Console.WriteLine("正在以 {0} 的方式创建文件", fs.IsAsync ? "异步" : "同步");

                    fs.Close();
                }
            }
        }