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

搬瓦工(季付46.7美元)新增荷兰(联通线路)VPS,2.5-10Gbps

搬瓦工最近新增了荷兰机房中国联通(AS9929、AS4837)线路的VPS产品,选项为NL - China Unicom Amsterdam(ENUL_9),与日本软银和洛杉矶(DC06)CN2 GIA配置一致可以互换,属于高端系列,2.5Gbps-10Gbps大带宽,最低季付46.7美元起。搬瓦工VPS隶属于老牌IT7公司旗下,主要提供基于KVM架构VPS主机,数据中心包括美国洛杉矶、凤凰城、纽...

TMTHosting:夏季优惠,美国西雅图VPS月付7折,年付65折,美国服务器95折AS4837线路

tmthosting怎么样?tmthosting家本站也分享过多次,之前也是不温不火的商家,加上商家的价格略贵,之到斯巴达商家出现,这个商家才被中国用户熟知,原因就是斯巴达家的机器是三网回程AS4837线路,而且也没有多余的加价,斯巴达家断货后,有朋友发现TMTHosting竟然也在同一机房,所以大家就都入手了TMTHosting家的机器。目前,TMTHosting商家放出了夏季优惠,针对VPS推...

Vultr新注册赠送100美元活动截止月底 需要可免费享30天福利

昨天晚上有收到VULTR服务商的邮件,如果我们有清楚的朋友应该知道VULTR对于新注册用户已经这两年的促销活动是有赠送100美元最高余额,不过这个余额有效期是30天,如果我们到期未使用完的话也会失效的。但是对于我们一般用户来说,这个活动还是不错的,只需要注册新账户充值10美金激活账户就可以。而且我们自己充值的余额还是可以继续使用且无有效期的。如果我们有需要申请的话可以参考"2021年最新可用Vul...

directory为你推荐
文件名长度windows7支持长文件名,文件名长度可达几个字符网络接入怎样建立一个网络拨号连接?accesspoint接入点APN什么意思啊价格咨询造价咨询公司一个月能接多少工程做啊上海网络维护公司上海有没有专业公司网络维护的啊ldap统一用户认证介绍NIPS是什么认证?信息发布管理系统信息发布系统的构架区别怎样下载文件电脑上怎么下载安装软件啊小时代发布会完整版郭敬明《小时代2.0虚铜时代》限量版上市时间it人物IT界名人有哪些?
过期域名查询 cn域名备案 轻博客 服务器日志分析 美国php空间 服务器架设 空间出租 柚子舍官网 softbank邮箱 刀片服务器的优势 电信虚拟主机 服务器硬件防火墙 in域名 空间租赁 shuang12 工信部网站备案查询 徐州电信 1美元 umax 深圳主机托管 更多