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); }
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(); } } }