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

EdgeNat 新年开通优惠 - 韩国独立服务器原生IP地址CN2线路七折优惠

EdgeNat 商家在之前也有分享过几次活动,主要提供香港和韩国的VPS主机,分别在沙田和首尔LG机房,服务器均为自营硬件,电信CN2线路,移动联通BGP直连,其中VPS主机基于KVM架构,宿主机采用四路E5处理器、raid10+BBU固态硬盘!最高可以提供500Gbps DDoS防御。这次开年活动中有提供七折优惠的韩国独立服务器,原生IP地址CN2线路。第一、优惠券活动EdgeNat优惠码(限月...

ZoeCloud:香港BGP云服务器,1GB内存/20GB SSD空间/2TB流量/500Mbps/KVM,32元/月

zoecloud怎么样?zoecloud是一家国人商家,5月成立,暂时主要提供香港BGP KVM VPS,线路为AS41378,并有首发永久8折优惠:HKBGP20OFF。目前,解锁香港区 Netflix、Youtube Premium ,但不保证一直解锁,谢绝以不是原生 IP 理由退款。不保证中国大陆连接速度,建议移动中转使用,配合广州移动食用效果更佳。点击进入:zoecloud官方网站地址zo...

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

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

directory为你推荐
轻应用手机qq轻应用怎么删除监控设备安装家庭如何安装监控设备国外视频聊天网址国外多人视频聊天网站求好心人帮忙!免费数据采集软件最好用的采集软件是哪个?短信认证我不会写怎样填写短信验证宽带包月网通宽带包月是怎么扣钱的导航免费求一款安卓手机导航软件,免费的,可以查地图,可以语音导航、公交线路查询、步行导航模式、周边搜索。etletl工程师有前景吗lightningmfi lightning是什么usingc++中的using namespace std有什么作用?
腾讯云数据库 info域名 12306抢票助手 hostker 可外链网盘 免费申请个人网站 银盘服务是什么 中国电信宽带测速器 网页提速 便宜空间 东莞主机托管 广州虚拟主机 lamp的音标 江苏双线 葫芦机 sockscap怎么用 广州服务器数据恢复 美国主机购买 个人web服务器 更多