什么是更好的方法来删除有条件的文件
我想在C#上构建Win Service(no UI),所有它所做的就是:在当时X KB上的目录列表和删除文件列表上运行. 我想要更好的表现, 这样做的更好方法是什么? 删除文件没有纯异步函数,所以如果我想使用异步,请等待 我可以像: 一样包装此功能 public static class FileExtensions { public static Task DeleteAsync(this FileInfo fi) { return Task.Factory.StartNew(() => fi.Delete() ); } } 并将此功能称为: FileInfo fi = new FileInfo(fileName); await fi.DeleteAsync(); 我认为像 一样运行 foreach file on ListOfDirectories { if(file.Length>1000) await file
34 2024-04-26
编程技术问答社区
ViewDiskModel.DeleteSelectedFiles.Execute(null)没有删除任何文件
我的应用不会在隔离存储中的加载页面上删除保存文件.删除和ViewDiskModel.cs类的代码如下: loadingpage.cs private void button2_Click(object sender, RoutedEventArgs e) { ViewDiskModel model = lstBox1.DataContext as ViewDiskModel; int m_iSelectedLoad = lstBox1.SelectedIndex; if (m_iSelectedLoad >= 0) { model.DeleteSelectedFiles.Execute(null); } MessageBox.Show("Files Successfully Deleted"); } ViewDiskModel.
6 2024-04-26
编程技术问答社区
删除一个特定的文件夹和它的文件 ASP.NET
好吧,所以我在这里有一个问题.我正在尝试使用ASP.NET(C#)在网络服务器上的另一个文件夹中删除一个特定文件夹.被删除的文件夹基于文本框. . 目录就像这个 /images/folderx folderx = txtDelFolder.Text; 问题在于,我尝试尝试的所有内容都会删除图像文件夹中的每件事.我猜它没有在filepath中识别我的文件夹 字符串路径= @" \ httpdocs \ images \ + + txtDelfolder.text; 我也尝试了 字符串路径= @" \ httpdocs \ images \ + + txtddelfolder.text +" \"; 使用单个'\'和double '\'\' 尝试了所有这一切 感谢您对此的任何帮助 也说我实际上已经输入了filepath,只是不想在这里分享. ****编辑**** string path = Serv
6 2024-04-26
编程技术问答社区
不能从一个目录中删除文件
我正在描述我的工作过程: 我从目录中获取图像文件. 创建用于显示图像的数组. 从我从目录中获得的文件创建Image数组.我正在创建此数组,以使PictureBox的映像来源. 我将文件复制到另一个目录.这样: File.Copy(allFiles[i],fullPath+fullName+"-AA"+nameString+ext); 现在我想从目录中删除文件.为此,我正在这样做: File.Delete(allFiles[i]); 但它给我这个错误: 该过程无法访问文件'c:\ g \ a.jpg',因为它是由另一个过程使用的. 请告诉我如何解决这个问题?我没有附加完整的代码,因为它会很大.请问我是否想查看我的代码的任何部分. 解决方案 机会是您直接从文件加载图像.例如, PictureBox[i] = Image.FromFile(allFiles[i]); 如果查找Image.FromFile方法的文档,您会发
26 2024-04-25
编程技术问答社区
删除多个目录中的所有文件和文件夹,但保留指令。
好吧,我喜欢这里的这条不错的代码,它似乎可以很好地工作,但我似乎无法在其中添加任何目录 DirectoryInfo dir = new DirectoryInfo(@"C:\temp"); foreach(FileInfo files in dir.GetFiles()) { files.Delete(); } foreach (DirectoryInfo dirs in dir.GetDirectories()) { dirs.Delete(true); } 我也想添加特殊文件夹,也喜欢历史记录和cookie,所以我该怎么做(我想包含至少4-5个不同的文件夹) 解决方案 也许这样的事情会有所帮助.我没有测试. public void DeleteDirectoryFolders(DirectoryInfo dirInfo){ foreach (DirectoryInfo dirs in dirInfo.GetDirectories())
6 2024-04-23
编程技术问答社区
File.Delete不能删除一个文件,因为它正在被另一个进程使用。不知道如何解决这个问题
我有一个项目,其中我的Web表单即时生成.CSV文件,然后使用GNUPG加密.加密过程有效,并在同一目录中生成加密文件.接下来,在加密文件后,我需要删除常规.csv文件. 我已经使用了file.delete来执行此操作,但是我会遇到错误"该过程无法访问文件'filepath/filename.ext',因为它是由另一个过程使用的.我不确定是否将代码放在错误的区域. 谁能向我建议我该怎么办?这是相关代码. public void encryptPGP(string fileName) { try { string sCommandLine = String.Format(@"-r ""CERT NAME"" -e ""{0}""", fileName); //lblError.Text = " " + sCommandLine + " "; string userPwd = "COOLPWD
14 2024-04-22
编程技术问答社区
递归函数中的计数器
我需要计算此递归函数中删除的文件数量.由于它是递归的,因此我不能使用if语句,并且C#不支持全局变量.有其他选择吗? static void DirSearch(string path) { try { foreach (string dirPath in Directory.GetDirectories(path)) { foreach (string filePath in Directory.GetFiles(dirPath)) { string filename = Path.GetFileName(filePath); if (filename.Equals("desktop.txt")) { File.Delete(filePath);
26 2024-04-21
编程技术问答社区
C# 在解压缩后删除一个.ZIP文件
我正在使用dotnetzip库中的ionic.zip.dll,我正在尝试删除zip文件完成解压缩,但我无法做到. 这是我当前拥有的代码: using (ZipFile zip = ZipFile.Read(nextVersion + ".zip")) { zip.ExtractAll(Directory.GetCurrentDirectory(), ExtractExistingFileAction.OverwriteSilently); try { File.Delete(nextVersion + ".zip"); } catch (Exception) { MessageBox.Show("Could not delete ZIP!"); Environment.Exit(1); } } 我在这里做错了什么? 解决方案 您正在获得异常,因为当您尝
26 2024-04-20
编程技术问答社区
在C#.NET中安全地删除一个文件
在我正在做的项目中,我想为用户提供"安全"删除文件的选项 - 如在随机位或0中覆盖它.在C#.NET中有一种简单的方法吗? 有多有效? 解决方案 您可以调用 sysinternals sdelete sdelete 你.这使用碎片部API处理所有这些棘手的边缘案例. 使用碎片部API,Sdelete 可以精确确定哪个簇 磁盘上被数据占据 属于压缩,稀疏和 加密文件. 如果要以更方便的形式重新包装该逻辑,则描述API 在这里. 其他解决方案 您无法在日记文件系统上安全删除文件.唯一仍在大量使用中的非杰出系统是FAT32.在任何其他系统上,安全删除的唯一方法是切碎整个硬盘驱动器. 编辑 安全删除不起作用的原因是,用于覆盖文件的数据可能不会存储在与覆盖数据相同的位置中. Microsoft确实提供了一个安全的删除工具,但似乎并不是您可以用作替代品的下降. 防止已删除的文件恢复的唯一好方法,缺少磁盘,将在将文件写入磁盘之前对其进行加密.
8 2024-04-19
编程技术问答社区
删除目录中的文件的最快方法是什么?(特定的文件扩展名除外)
我已经看到了什么是最好的方法空目录? 但我需要知道, 除了找到任何.zip文件外,删除目录中发现的所有文件的最快方法是什么. 在这里闻起来像Linq ...或什么? 说最快的方法,我的意思是最快的执行时间. 解决方案 如果您使用的是.NET 4,则可以以智能方式.NET折磨您的功能.此代码是禁食的方法.这也与您的处理器上的核心数在一起. DirectoryInfo di = new DirectoryInfo(yourDir); var files = di.GetFiles(); files.AsParallel().Where(f => f.Extension != ".zip").ForAll((f) => f.Delete()); 其他解决方案 最快的代码行还是最快的执行时间?这是使用LINQ具有并行的LINQ来快速删除它们的样本. string[] files = System.IO.Directory.GetFiles("c
0 2024-04-18
编程技术问答社区
当试图删除一个文件时,如何调试 "共享违反"?
我有一个多线程C#应用程序,该应用程序可以创建文件,打开它们以进行处理,然后在完成后删除它们.该应用程序可以期望处理1-100个文件.在某种程度上(最有可能归因于应用程序的多线程性质),当我尝试在处理后尝试删除文件时,我会得到共享违规行为.我的直觉说,好吧,您没有在尝试删除文件之前正确关闭/处理文件.如果每个文件都发生,我会选择肠道,但事实并非如此.因此,我正在尝试找出我在哪里犯错的地方.外面有人有任何关于如何调试这种例外的指针吗?如果这很有意义,我很想在文件上看到堆栈跟踪. 我将尝试显示伪代码,但是,我的问题更多地是关于如何调试这种类型的例外: 应用程序事件: 操作开始 +=创建新处理器. 传输文件 += processor.processfile,然后将新文档对象添加到处理器的文档收集(如路径,而不是文件) 操作完成 += processor.ggregate文件,创建包含文件内容的新文件.此方法完成后,它调用处理器. 处理器事件: 处理器完
14 2024-04-18
编程技术问答社区
在C#中从FTP中删除文件
我的程序可以使用此代码上传到FTP服务器: WebClient client = new WebClient(); client.Credentials = new System.Net.NetworkCredential(ftpUsername, ftpPassword); client.BaseAddress = ftpServer; client.UploadFile(fileToUpload, WebRequestMethods.Ftp.UploadFile, fileName); 现在,我需要删除一些文件,而我不能做正确的事情.我应该使用什么而不是 client.UploadFile(fileToUpload, WebRequestMethods.Ftp.UploadFile, fileName); 解决方案 您需要使用 ftpwebrequest 我想这样做. FtpWebRequest request = (FtpWebRequest)WebRe
12 2024-04-14
编程技术问答社区
怎样才能使我的.NET应用程序自我清除?
如何使我的C#应用​​程序擦除(自我毁灭)?我认为这是两种方法: 提供另一个删除主程序的程序.但是,如何删除此DELETER程序? 创建一个到CMD的过程,等待几秒钟,然后删除您的文件.在那几秒钟内,您关闭了您的申请. 这两种方法似乎都效率低下.我觉得窗户中有一些内置的旗帜或某些东西可以提供这样的东西.我应该怎么做?另外,您可以提供一些示例代码吗? 更新:感谢您的所有答案!我要尝试一下,看看那是我的何处. 首先,有些人问为什么我要我的应用程序这样做.答案是:几天前,我阅读了乔尔·斯波尔斯基(Joel Spolsky)在他的博客上发布的项目Aardvark规格,并提到客户端应用程序将在远程会话后删除自身.我想知道这是如何工作的,如果我需要这样做,我可以完成这样的壮举. 这是建议的一点概述: 创建一个注册表条目,该条目告诉Windows重新启动上的文件 使用ping命令启动cmd等待几秒钟,然后删除文件 当然,这两个都有自己的缺点,如评论中所述.
8 2024-04-12
编程技术问答社区
等待系统删除文件
删除文件后,我有一个刷新文件列表的问题.当我给出命令删除文件时,引发了例外,因为刷新方法试图访问应该删除的文件. 经过一番思考和调试后,我得出结论,问题是系统需要一些时间来删除文件.我这样解决了: //Deleting file System.Threading.Thread.Sleep(2000); //Refreshing list 效果很好. 我的问题是 是否有更优雅的方式等待系统删除文件,然后继续使用代码...? 解决方案 我能想到的最优雅的方式是使用 FileSystemWatcher 并订阅其Deleted事件. 其他解决方案 这对我有用: public static void DeleteFile(String fileToDelete) { var fi = new System.IO.FileInfo(fileToDelete); if (fi.Exists) { fi.Delet
6 2024-04-12
编程技术问答社区
删除一个正在被其他进程使用的文件
我正在尝试编程删除文件,但是该文件显然是由另一个过程使用(恰好是我的程序).基本上,程序通过使用Fromuri创建一个位图从文件夹加载图像,然后将其加载到图像数组中,进而成为Stackpanel的孩子.效率不是很高,但有效. 我已经尝试清理堆栈的孩子,并在阵列中制作图像,但是我仍然得到ioexception告诉我,另一个过程正在使用该文件. 是否有其他方法可以从我的应用程序的流程中删除文件? 解决方案 为了在加载后发布图像文件,您必须通过设置BitmapCacheOption.OnLoad标志来创建图像.这样做的一种方法是: string filename = ... BitmapImage image = new BitmapImage(); image.BeginInit(); image.CacheOption = BitmapCacheOption.OnLoad; image.UriSource = new Uri(filename); image.En
8 2024-04-10
编程技术问答社区
删除C语言中的部分文件
如何创建一个函数来删除文件的某些部分?例如,文件为: - . 主席:A23 编号:123 姓名:joshua - . 主席:B12 编号:512 名称:Marcus - . 主席:C2 编号:1 名称:Drake 如果输入为 b12 然后文件应成为 - . 主席:A23 编号:123 姓名:joshua - . 主席:C2 编号:1 名称:Drake 我需要此功能才能使我的程序正常工作,但是我不知道该怎么做. 解决方案 与原始文件相同的目录中打开一个新文件.写入该文件,要替换原始文件的内容.关闭新文件.重命名原始文件顶部的新文件. ,也许您应该考虑使用数据库而不是文本文件. 其他解决方案 以面值为例,请考虑使用: 的组合 在二进制文件的中间写入而不覆盖任何现有内容 如何在C? 中截断文件 您将使用步骤1的交谈从文件末尾(要删除零件后)在要删除的零件上复制材料,然后使用步骤2将文件大
20 2024-04-06
编程技术问答社区
如何使用php来检测用户是否关闭浏览器?
可能的重复: 检测php 中的浏览器出口 我的服务器中有一些与用户相关的文件,希望在用户关闭浏览器或离开我的页面时将其删除.是否可以?有什么办法吗? 解决方案 不仅有php. php运行服务器端,并且在用户有机会关闭浏览器时处理您的页面.您可以从技术上检测PHP是否仍在处理页面并使用特定的配置来关闭页面.但是,这不是理想的.参见 connection_aborted() .. 您需要做的是与JavaScript建立长以长时间的连接,并监视IT服务器端.然后,您将了解关闭该窗口的时间.该连接可以与您的PHP脚本建立,从而允许PHP检查connection_aborted().请注意,您需要设置其他解决方案 您可以使用JavaScript每隔几秒钟对.php文件进行AJAX调用. 其他解决方案 php是 *服务器 *侧面,因此在大多数情况下仅使用PHP.一种可能的解决方案是让Cronjob每天晚上运行并删除旧文件.
6 2024-04-04
编程技术问答社区
从git存储库中完全删除文件及其历史记录
我上传了一个字体文件,该文件我没有在几个更新之前分发到git Hub的权利. 我有一个相对不活动的存储库,我有能力在必要时通知所有成员.我尝试了几种解决方案.我需要删除我的目录中的一个名为Resources\Video\%font%.ttf的文件,其中%font%是字体的平原,斜体和粗体版本的名称.我要使用什么命令? 解决方案 在这种情况下,您可以使用 git filter branch 命令使用--tree-filter选项. 语法是git filter-branch --tree-filter ... git filter-branch --tree-filter 'rm -f Resources\Video\%font%.ttf' -- --all 编辑更新 请注意,git filter-branch --index-filter比--tree-filter 快得多 git filter-branch --index-fi
10 2024-03-31
编程技术问答社区
脚本以删除具有相同名称但不同扩展名的重复文件
我正在使用Audacity的链条脚本功能来批量转换和编辑许多大型,未压缩的.WAV文件,以较小的.ogg格式.我最终得到了以下文件夹结构: f:/sound-recordings: -- rec1.wav -- rec2.wav -- rec3.wav -- rec4.wav -- rec5.wav f:/sound-recordings/cleaned: -- rec1.ogg -- rec2.ogg -- rec3.ogg 某些源.WAV文件已损坏(Note rec4.wav and Rec5.在上面的示例中WAV),Audacity不会转换它们(至少通过链函数).这会产生一个问题,因为比较两个文件夹可能会变得非常乏味,并且仅删除成功转换为.ogg的.wav文件. 在上面的示例中," rec1.wav"," rec2.wav"和" rec3.wav"应删除,而" rec4.wav"和" rec5.wav"未被触摸,因为它们不是转换. 我需要一个脚本(批处理或py
10 2024-03-29
编程技术问答社区