我刚写了一个PHP脚本,它应该连接到FTP并删除特殊文件夹中的所有文件.
它看起来像这样,但我不知道删除文件夹日志中的所有文件需要什么命令.
任何的想法?
<?php
// set up the settings
$ftp_server = 'something.net';
$ftpuser = 'username';
$ftppass = 'pass';
// set up basic connection
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftpuser, $ftppass);
// delete all files in the folder logs
????????
// close the connection
ftp_close($conn_id);
?>
Run Code Online (Sandbox Code Playgroud) 我知道如何在C#中擦除文件,包括它的扇区等.
但是如何覆盖目录呢?
示例:@"C:\mydirectory\"必须永远不可恢复(所有文件内部已经被擦除),以便无法恢复目录结构或其名称.
-------------------下面更新(评论格式是如此麻烦,所以我在这里发布)---
对于文件删除,我查找分区的簇和区段大小,并使用5种不同的算法将其覆盖至少40次,其中最后一种算法始终是随机算法.数据实际上每次都写入磁盘(而不仅仅是内存或其他东西).唯一的风险是,当我擦除某些东西时,理论上可以更改该文件磁盘上的物理地址.我知道的唯一解决方案是在擦除文件后擦除可用磁盘空间,并希望当前没有其他文件部分保留擦除文件的旧物理位置.或者Windows不做这样的事情?
http://www.sans.org/reading_room/whitepapers/incident/secure-file-deletion-fact-fiction_631指出:
"重要的是要注意一致认为,覆盖数据只会降低数据被恢复的可能性.数据被覆盖的次数越多,恢复数据的成本和成本就越高.事实上,Peter Guttman说:"它是通过简单地覆盖存储位置,无论有多少覆盖传递或写入什么数据模式,都无法对存储位置进行消毒."3使用磁力显微镜可以恢复覆盖数据,这可以处理硬盘上的成像磁化模式磁盘.如何实现这一目标的实际细节超出了本文的范围."
我个人认为,当我使用不同的(可能是未知的)算法覆盖100次以上的数据时(如果没有像交换文件那样留在其他地方的数据副本),那将需要任何非常昂贵的专业团队多年才能获得这些数据.如果他们确实在那些年后获得了数据,那么他们应该得到它我认为......那一定是一个终生的项目.
所以:
然后结论应该是:(几乎)不可能在C#中安全擦除?
我正在使用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);
}
}
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
如何在bash中删除文件名包含星号的文件?我的意思是,使用通配符.如果我做
rm -fr *filter*
Run Code Online (Sandbox Code Playgroud)
我将删除文件名中出现"filter"一词的所有文件,但文件中包含星号的文件是什么?
编辑:根据您的建议,我无法删除它
*filter*xyz*.data
Run Code Online (Sandbox Code Playgroud) 我为删除文件夹编写了递归PHP函数.我想知道,我如何修改此功能以删除webhosting中的所有文件和文件夹,不包括给定的文件和文件夹名称数组(例如cgi-bin,.htaccess)?
BTW
使用此函数完全删除这样调用的目录
recursive_remove_directory('path/to/directory/to/delete');
Run Code Online (Sandbox Code Playgroud)
使用此函数清空调用目录,如下所示:
recursive_remove_directory('path/to/full_directory',TRUE);
Run Code Online (Sandbox Code Playgroud)
现在功能是
function recursive_remove_directory($directory, $empty=FALSE)
{
// if the path has a slash at the end we remove it here
if(substr($directory,-1) == '/')
{
$directory = substr($directory,0,-1);
}
// if the path is not valid or is not a directory ...
if(!file_exists($directory) || !is_dir($directory))
{
// ... we return false and exit the function
return FALSE;
// ... if the path is not readable
}elseif(!is_readable($directory))
{
// ... we return false and exit the function …Run Code Online (Sandbox Code Playgroud) 我不小心将一个我没有权利的文件推送到一个可公开访问的仓库.
我可以做些什么来完全从repo中选择性地修改单个文件,以便它的数据完全消失?
我想在单个目录中搜索多个文本文件中的字符串('monkey'),如果字符串存在,那么要么根据最简单的方法:
要么
已搜索但似乎无法找到任何直截了当的东西.
当不再需要文件时,"最佳实践"是什么?从存储库中删除它,或将其移动到存储库中的"notneededfiles_archive"?
我想删除它们,但我不知道是否有一种简单的方法可以列出所有已删除的文件.存档选项,你可以直接看到所有已删除的文件,如果你需要一个回来看看那里...但过了一段时间它可能是巨大的文件夹...(如果你删除很多:))
有什么建议?
在继续我的程序之前,如何检查目录中是否存在文件?我已经阅读了尝试使用各种方法打开文件的答案,但我的问题是,大多数情况下,我正在检查的文件将损坏并且无法打开.这发生在我的程序的错误检查部分,只有在前面的代码中发生错误时才会触发.我想检查文件是否存在,如果是,则要求删除它,否则只打印一些消息.
我怎么能这样做?
(只是删除并接受错误会起作用,但我这样做是为了学习,所以我想要正确地做...)
编辑:
我已经下载了Boost来使用文件系统库并编译它,看似没有错误,但是当我尝试编译我的程序时,我得到了这个响应:
g++ program.cpp -I <path to>/boost_1_54_0 -o output
Undefined symbols for architecture x86_64:
"boost::filesystem::detail::status(boost::filesystem::path const&, boost::system::error_code*)", referenced from:
boost::filesystem::exists(boost::filesystem::path const&)in cc1XX8rD.o
"boost::system::system_category()", referenced from:
__static_initialization_and_destruction_0(int, int)in cc1XX8rD.o
"boost::system::generic_category()", referenced from:
__static_initialization_and_destruction_0(int, int)in cc1XX8rD.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我在程序中使用boost的唯一地方是:
boost::filesystem::path my_file(s4);
if (boost::filesystem::exists(my_file)){ ...
Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码在Android中重命名文件:
File source = new File(SOURCE_PATH);
File destination = new File(DESTINATION_PATH);
if (!destination.exists()) {
source.renameTo(destination);
}
Run Code Online (Sandbox Code Playgroud)
问题是重命名文件后,源文件夹中仍有一个包含0字节的旧名称的文件.
我添加了下面的行来删除文件:
if (source.exists()) {
source.delete();
}
Run Code Online (Sandbox Code Playgroud)
但结果保持不变.我该怎么办?