我需要删除包含只读文件的目录.哪种方法更好:
使用DirectoryInfo.Delete()
,或,
ManagementObject.InvokeMethod("Delete")
?
有了DirectoryInfo.Delete()
,我必须手动关闭每个文件的只读属性,但ManagementObject.InvokeMethod("Delete")
似乎不需要.有没有人比另一个人更优先?
示例代码(test.txt是只读的).
DirectoryInfo dir = new DirectoryInfo(@"C:\Users\David\Desktop\");
dir.CreateSubdirectory("Test");
DirectoryInfo test = new DirectoryInfo(@"C:\Users\David\Desktop\Test\");
File.Copy(@"C:\Users\David\Desktop\test.txt", @"C:\Users\David\Desktop\Test\test.txt");
File.SetAttributes(@"C:\Users\David\Desktop\Test\test.txt", FileAttributes.Archive);
test.Delete(true);
Run Code Online (Sandbox Code Playgroud)
DirectoryInfo dir = new DirectoryInfo(@"C:\Users\David\Desktop\");
dir.CreateSubdirectory("Test");
DirectoryInfo test = new DirectoryInfo(@"C:\Users\David\Desktop\Test\");
File.Copy(@"C:\Users\David\Desktop\test.txt", @"C:\Users\David\Desktop\Test\test.txt");
string folder = @"C:\Users\David\Desktop\Test";
string dirObject = "Win32_Directory.Name='" + folder + "'";
using (ManagementObject managementObject = new ManagementObject(dirObject))
{
managementObject.Get();
ManagementBaseObject outParams = managementObject.InvokeMethod("Delete", null,
null);
// ReturnValue should be 0, else failure
if (Convert.ToInt32(outParams.Properties["ReturnValue"].Value) != 0) …
Run Code Online (Sandbox Code Playgroud) 如何使用C++删除文件夹?
如果不存在跨平台方式,那么如何为最流行的操作系统 - Windows,Linux,Mac,iOS,Android?POSIX解决方案是否适用于所有这些解决方案?
rmdir()
如果文件夹包含任何文件,则该函数将失败.我可以循环遍历目录中的所有文件,如下所示:
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') continue;
unlink($dir.DIRECTORY_SEPARATOR.$item);
}
rmdir($dir);
Run Code Online (Sandbox Code Playgroud)
有没有办法一次性删除它?
我有一个分享,是最终用户的"垃圾抽屉".他们可以根据需要创建文件夹和子文件夹.我需要实现一个脚本来删除超过31天创建的文件.
我从Powershell开始.我需要通过删除现在为空的子文件夹来跟进文件删除脚本.由于子文件夹的嵌套,我需要避免删除没有文件的子文件夹,但在其下面有一个包含文件的子文件夹.
例如:
FILE3a
已经10天了. FILE3
是45天.C:\Junk\subfolder1a\subfolder2a\FILE3a
C:\Junk\subfolder1a\subfolder2a\subfolder3a
C:\Junk\subfolder1a\subfolder2B\FILE3b
Run Code Online (Sandbox Code Playgroud)
期望的结果:
FILE3b
,subfolder2B
&subfolder3a
. subfolder1a
,subfolder2a
,和FILE3a
.我可以递归清理文件.如何清除子文件夹而不删除subfolder1a
?("垃圾"文件夹将始终保留.)
问题:我有一个Windows 7子目录,我无法删除.
虽然我在这里认识其他人,并且互联网上的其他许多人已经询问了这类Windows 7文件系统的常见问题,但我的问题特别涉及Windows 7上具有尾随空格的特定类别的不可删除文件.目录名称.
有没有更好的工具来检查和/或编辑我的文件系统(如果需要,可以用十六进制)?
操作系统:我正在运行x64专业版,它已完全更新.
已经尝试过:我已经阅读了很多关于这个主题的网页,并尝试了许多潜在的解决方案.我最近使用PowerShell一直在研究这个问题,它似乎完全能够处理系统内部.此时我正在为文件系统寻找类似十六进制编辑器的东西.
它不是由以下原因引起的:
它不是由以下原因修复的:
Run Code Online (Sandbox Code Playgroud)< - Less than symbol > - Greater than symbol : - Colon " - Quotation Mark / - Forward Slash | - Vertical Bar ? - Question mark * - Asterisk
是什么造成的?在我的例子中,几个月前使用我用于源树备份的自定义PHP程序创建了不可删除的子目录.它似乎在名称中有空格或其他不良字符,但我不能确定.它在文件目录中可见,但不能删除,重命名,rmdir等.
调查:我可以在我的文件系统上移动它并将其放在C:中名为'hold bad subdir'的子目录中.
在这里,您可以使用PowerShell查看它.首先,我使用Get-ChildItem(与别名'dir'相同)显示它:
PS C:\holds bad subdir> Get-ChildItem
Directory: C:\holds bad subdir
Mode …
Run Code Online (Sandbox Code Playgroud) 我试图删除位于路径的文件
/storage/714D-160A/Xender/image/Screenshot_commando.png
Run Code Online (Sandbox Code Playgroud)
到目前为止我做了什么:
try{
String d_path = "/storage/714D-160A/Xender/image/Screenshot_commando.png";
File file = new File(d_path);
file.delete();
}catch(Exception e){
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
并且文件仍在其位置(未删除:()
我也在Manifest文件中获得了许可.
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.STORAGE" />
Run Code Online (Sandbox Code Playgroud) 我想查找最旧的目录(在目录中),并删除它.我使用以下内容:
rm -R $(ls -1t | tail -1)
Run Code Online (Sandbox Code Playgroud)
ls -1t | tail -1
确实给了我最老的目录,问题是它没有删除目录,而且它也列出了文件.
我怎么能解决这个问题?
我正在尝试为debian
包编写维护者脚本.假设我有一个目录结构如下:
application/
----application/file1.txt
----application/file2.txt
----application/config
--------application/config/c1.conf
--------application/config/c2.conf
----application/logs
--------application/logs/l1.txt
--------application/logs/l2.txt
----application/src
--------application/src/static/
------------application/src/static/js
------------application/src/static/css
--------application/src/s1.py
--------application/src/s2.py
----application/lib
--------application/src/js/
--------application/src/css/
Run Code Online (Sandbox Code Playgroud)
现在我想删除除所有文件/文件夹config
,并logs
(在这种情况下,src
和lib
文件夹,file1.txt
以及file2.txt
文件).我PWD
目前是appliaction/
dir 的父母(也就是说,我可以application
在我看到PWD
).
我应该使用什么命令(小的bash script
会很棒)?(我尝试了rm -rf
一些选项,但错误地删除了其他文件,所以我想在尝试其他任何事情之前知道正确的答案!)
如何从当前目录中删除所有文件和子目录,包括当前目录?