directorycreate directory 后,如何删除是DELETE directory吗

directory  时间:2021-08-17  阅读:()

电脑突然白屏,出现“GDI+中发生一般性错误”,怎么解决?

这是我找到的,虽然我不太懂这个。



今天在开发引用程序中,需要System.Drawing.Image.Save 创建图片,debug的时候程序一切正常,可是发布到IIS后缺提示出现“GDI+中发生一般性错误”的异常。

于是开始“摆渡”,并寻找到了解决办法:赋予 NETWORK SERVICE 帐户以写权限。

以下为晚上寻找到的资料: 在开发.NET应用中,使用 System.Drawing.Image.Save 方法而导致“GDI+ 中发生一般性错误”的发生,通常有以下三种原因: 1. 相应的帐户没有写权限。

解决方法:赋予 NETWORK SERVICE 帐户以写权限。

2. 指定的物理路径不存在。

解决方法: 在调用 Save 方法之前,先判断目录是否存在,若不存在,则创建。

if (!Directory.Exists(dirpath)) Directory.CreateDirectory(dirpath); 3. 保存的文件已存在并因某种原因被锁定。

解决方法: 重启IIS,解除锁定。

并在代码中使用 using 语句,确保释放 Image 对象所使用的所有资源。

我遇到的情况: 在编写Chem.NET的时候要保存图片,我先用openFileDialog打开图片文件,然后用saveFileDialog保存文件时就出现了 “GDI+中发生一般性错误”,我当时就想到是打开的文件还没有释放出来,于是用openFileDialog1.Dispose()来释放,可是没有成功。

同样从一个MemorySream 实例打开一个Image后,立即关闭了这个流,结果在Image.Save时也会发生这种错误。

我“摆渡”了很久都是遇到和我一样问题的人,CSDN上面的同志也没有给出一个实用的答案。

最后终于还是在微软的网站上找到了答案:(以下是官方解决办法) 症状 Bitmap 对象或一个 图像 对象从一个文件, 构造时该文件仍保留锁定对于对象的生存期。

因此, 无法更改图像并将其保存回它产生相同的文件。

替代方法 ? 创建非索引映像。

? 创建索引映像。

这两种情况下, 原始 位图 上调用 Bitmap.Dispose() 方法删除该文件上锁或删除要求, 流或内存保持活动。

创建非索引图像 即使原始映像被索引格式中该方法要求新图像位于每像素 (超过 8 位 -) -, 非索引像素格式。

此变通方法使用 Graphics.DrawImage() 方法来将映像复制到新 位图 对象: 1. 构造从流、 从内存, 或从文件原始 位图 。

2. 创建新 位图 的相同大小, 带有是超过 8 位 - - 像素 (BPP) 每像素格式。

3. 使用 Graphics.FromImage() 方法以获取有关二 位图 Graphics 对象。

4. 用于 Graphics.DrawImage() 绘制首 位图 到二 位图 。

5. 用于 Graphics.Dispose() 处置是 图形 。

6. 用于 Bitmap.Dispose() 是首 位图 处置。

创建索引映像 此解决办法在索引格式创建一个 Bitmap 对象: 1. 构造从流、 从内存, 或从文件原始 位图 。

2. 创建新 位图 具有相同的大小和像素格式作为首 位图 。

3. 使用 Bitmap.LockBits() 方法来锁定整个图像对于两 Bitmap 对象以其本机像素格式。

4. 使用 Marshal.Copy 函数或其他内存复制函数来从首 位图 复制到二 位图 图像位。

5. 使用 Bitmap.UnlockBits() 方法可以解锁两 Bitmap 对象。

6. 用于 Bitmap.Dispose() 是首 位图 处置。

由于外国人的思维和我们不一样,我重新用实例解释一下,我这里使用的是创建非索引图像。

private void ToolStripMenuItem_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { //创建一个bitmap类型的bmp变量来读取文件。

Bitmap bmp = new Bitmap(openFileDialog1 .FileName ); //新建第二个bitmap类型的bmp2变量,我这里是根据我的程序需要设置的。

Bitmap bmp2 = new Bitmap(1024, 768, PixelFormat.Format16bppRgb555); //将第一个bmp拷贝到bmp2中 Graphics draw = Graphics.FromImage(bmp2); draw.DrawImage(bmp,0,0); pictureBox1.Image = (Image)bmp2 ;//读取bmp2到picturebox FILE = openFileDialog1.FileName; openFileDialog1.Dispose(); draw.Dispose(); bmp.Dispose();//释放bmp文件资源 } } 通过以上的读取文件,在保存的时候就不会出现错误了。

C# Directory的问题

string file1 = @"d:file1"; string file2 = @"d:file2"; Directory.CreateDirectory(file1); Directory.CreateDirectory(file2); Directory.Move(file2,file1 + @"file2");

c#中 directory可以创建文件夹吗

以下代码首先检查指定的文件夹是否存在,若存在则删除之,否则创建之。

接下来移动文件夹,在其中创建文件并统计文件夹中文件数目。

using System; using System.IO; class Test { public static void Main() { // Specify the directories you want to manipulate. string path = @"c:MyDir"; string target = @"c:TestDir"; try { // Determine whether the directory exists. if (!Directory.Exists(path)) { // Create the directory it does not exist. Directory.CreateDirectory(path); } if (Directory.Exists(target)) { // Delete the target to ensure it is not there. Directory.Delete(target, true); } // Move the directory. Directory.Move(path, target); // Create a file in the directory. File.CreateText(target + @"myfile.txt"); // Count the files in the target directory. Console.WriteLine("The number of files in {0} is {1}", target, Directory.GetFiles(target).Length); } catch (Exception e) { Console.WriteLine("The process failed: {0}", e.ToString()); } finally {} } }

create directory 后,如何删除是DELETE directory吗

一个根文件夹,底下包含多级目录,每一级又存在多个个子文件夹,每个文件夹里面又存在多个文件。

  如果要删除所有子文件又保存最顶级的目录文件夹,那采用什么办法处理好呢?   处理方法   1、 直接删除根文件夹,然后再创建根文件夹。

  void deleteAllFile(string path)   {   Directory.Delete(path,true);   Directory.CreateDirectory(path);   }   2、遍历所有子目录文件夹的文件,逐个删除。

  ///   /// 遍历文件夹及子文件夹所有文件   ///   /// string dir=ListFiles(new DirectoryInfo(dir));   /// 文件夹目录路径   /// 返回ArrayList对象   public static System.Collections.ArrayList ListFiles(string fileDirectory)   {   ArrayList arylist = null;   if (Directory.Exists(fileDirectory))   {   DirectoryInfo dinfo = new DirectoryInfo(fileDirectory);   if (dinfo != null)   {   FileSystemInfo[] files = dinfo.GetFileSystemInfos();   for (int i = 0; i < files.Length; i++)   {   FileInfo file = files[i] as FileInfo;   if (file != null)   {   if (arylist == null)   arylist = new ArrayList();   arylist.Add(file);   }   else   {   ListFiles(files[i].FullName); //对于子目录,进行递归调用   }   }   }   }   return arylist;   }   用第一个方法最直接,不用递归,不用遍历,但调用系统的方法,不知道内部原理怎么运行的。

  总体来说应该是第一种方法比第二种方法的性能要好!待进一步求证。

  删除一个文件夹下所有文件可以用如下文件方法。

  void deleteAllFile(string path)   {   foreach (string dirStr in Directory.GetDirectories(path))   {   DirectoryInfo dir = new DirectoryInfo(dirStr);   }   ArrayList folders=new ArrayList();   FileSystemInfo[] fileArr = dir.GetFileSystemInfos();   for (int i = 0; i < folders.Count; i++)   {   FileInfo f = folders[i] as FileInfo;   if (f == null)   {   DirectoryInfo d = folders[i] as DirectoryInfo;   d.Delete();   }   }   }

提速啦母鸡 E5 128G 61IP 1200元

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

7月RAKsmart独立服务器和站群服务器多款促销 G口不限量更低

如果我们熟悉RAKsmart商家促销活动的应该是清楚的,每个月的活动看似基本上一致。但是有一些新品或者每个月还是有一些各自的特点的。比如七月份爆款I3-2120仅30美金、V4新品上市,活动期间5折、洛杉矶+硅谷+香港+日本站群恢复销售、G口不限流量服务器比六月份折扣力度更低。RAKsmart 商家这个月依旧还是以独立服务器和站群服务器为主。当然也包括有部分的低至1.99美元的VPS主机。第一、I...

HostYun(22元/月)全场88折优惠香港原生IP大带宽

在之前的一些文章中有提到HostYun商家的信息,这个商家源头是比较老的,这两年有更换新的品牌域名。在陆续的有新增机房,价格上还是走的低价格路线,所以平时的折扣力度已经是比较低的。在前面我也有介绍到提供九折优惠,这个品牌商家就是走的低价量大为主。中秋节即将到,商家也有推出稍微更低的88折。全场88折优惠码:moon88这里,整理部分HostYun商家的套餐。所有的价格目前都是原价,我们需要用折扣码...

directory为你推荐
动画技术动漫制作技术是学什么组或资源的状态不是执行请求操作的正确状态intel 5100 agn 支持无线承载网络么?制作证书怎么做证书啊!色空间求图像处理中颜色空间的介绍,越详细越好化学键理论价键理论和分子轨道理论的主要区别是什么最好的电脑操作系统电脑系统哪个比较好用,运行流畅?解码器有什么用监控解码器是指什么?网络黑科技华为有哪些黑科技?人工电源网络手机开机显示选择网络是怎么回事?怎样清除历史记录怎样清除历史记录
广东虚拟主机 免费二级域名注册 新网域名解析 骨干网 华为云服务 主机 googleapps NetSpeeder css样式大全 空间服务商 hnyd 云鼎网络 英文站群 网通ip 193邮箱 有益网络 圣诞促销 nerds 福建铁通 国外免费asp空间 更多