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

提速啦(24元/月)河南BGP云服务器活动 买一年送一年4核 4G 5M

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...

丽萨主机:美国CN2 GIA精品网/KVM/9折,美国原生IP,最低27元/月

丽萨主机怎么样?丽萨主机,团队于2017年成立。成立之初主要做的是 CDN 和域名等相关业务。最近开辟新领域,新增了独立服务器出租、VPS 等业务,为了保证业务质量从一开始就选择了中美之间的 CN2 GIA 国际精品网络,三网回程 CN2 GIA,电信去程 CN2 GIA + BGP 直连智能路由,联通移动去程直连,原生IP。适合对网络要求较高的用户,同时价格也比较亲民。点击进入:丽萨主机官方网站...

Hosteons:洛杉矶/纽约/达拉斯免费升级10Gbps端口,KVM年付21美元起

今年1月的时候Hosteons开始提供1Gbps端口KVM架构VPS,目前商家在LET发布消息,到本月30日之前,用户下单洛杉矶/纽约/达拉斯三个地区机房KVM主机可以从1Gbps免费升级到10Gbps端口,最低年付仅21美元起。Hosteons是一家成立于2018年的国外VPS主机商,主要提供VPS、Hybrid Dedicated Servers及独立服务器租用等,提供IPv4+IPv6,支持...

directory为你推荐
竞争者什么是竞争?竞争的真实含义是什么?动画技术动漫设计与动漫制作技术这两个专业有什么区别安卓开发环境搭建如何搭建 Android 开发环境?网络营销讲师哪位网络营销讲师培训师的上课风格最好?说明书之家网站索尼A200说明书哪里有封包是什么dnf封包是什么物联网公司排名国内物联网卡座公司有排名吗?云电视是什么意思4K2K是什么意思?it人物码农是什么意思,码畜、码奴等又是什么意思广州品牌网站设计广州品牌设计公司
猫咪永久域名收藏地址 网站备案域名查询 北京租服务器 便宜vps smartvps cloudstack 便宜建站 paypal认证 网络星期一 标准机柜尺寸 cpanel空间 创梦 重庆双线服务器托管 新睿云 360云服务 免费邮件服务器 海外空间 丽萨 photobucket atom处理器 更多