使用windows api,有没有办法删除一个大文件(比方说1gb +),并以某种方式监控进度?我确定它可能但我不知道从哪里开始..
编辑:应该更具体,我想将文件移动到回收站,并显示类似于探索的进度条,虽然我可能想要控制台中的进度条或其他东西,所以我不想要一个精确的副本.
编辑2:Yeaah猜测它是即时的,应该在我提出问题之前进行测试.无论如何只是关闭这个问题?
我正在尝试从内部存储中删除我的文件夹,但我正在使用的代码实际上并没有工作.有什么想法吗?
Button login = (Button) findViewById(R.id.login_btn);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = "/data/data/"+context.getPackageName()+"/files/";
Log.e("","path : "+name);
File myDir = new File(name);
myDir.delete();
boolean iff = myDir.delete();
Log.e("","iff : "+iff);
}
});
Run Code Online (Sandbox Code Playgroud)
按钮点击后得到的结果:
11-17 13:09:58.869: E/(15952): path : /data/data/com.android.test/files/
11-17 13:09:58.869: E/(15952): iff : false
Run Code Online (Sandbox Code Playgroud) 当我使用右键菜单手动删除文件时,它将被删除.
但是当我运行这段代码时:
string[] filePaths = Directory.GetFiles(@"c:\My cloud\VM Instances\");
foreach (string filePath in filePaths)
File.Delete(filePath);
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
"在mscorlib.dll中发生'System.UnauthorizedAccessException'类型的第一次机会异常访问路径'c:\ My cloud\VM Instances\i-7e3cbb19(manish).cvm'被拒绝.线程''(0xb5c)已退出,代码为0(0x0).在mscorlib.dll'cloud_sync.vshost.exe'(Managed(v4.0.30319))中发生了'System.UnauthorizedAccessException'类型的第一次机会异常:已加载'C:\ WINDOWS\Microsoft. Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll',跳过加载符号.模块已优化,调试器选项"Just My Code"已启用."
所以我该怎么做?
我想删除一个我只知道名字第一部分的文件.
unlink('./upload/nav_thumbs/project-' .the rest);
Run Code Online (Sandbox Code Playgroud)
'其余'=可以是任何东西.我唯一得到的是它有一个.jpg扩展名
有没有办法做到这一点?
我的要求是将文件和文件夹从SFTP远程位置传输到unix位置.我是perl和shell脚本的新手,这一直非常令人困惑.我尝试使用sftp foreign中的rget命令,如下所示.但它不起作用,也没有转移.从sftp服务器复制后如何删除文件和文件夹?
use Net::SFTP::Foreign;
my $host = "sftp.elsevier.com";
my $remote_dir = "sample/host";
my $localdir = "sample/local";
my $username = "username";
my $password = "password";
my $debug = 0;
$sftp = Net::SFTP::Foreign->new($host, timeout => 240,user => $username, password => $password) or $newerr = 1;
push @ERRORS, "Can't sftp to $host: $!\n" if $newerr;
myerr() if $newerr;
print "Connected to $host\n";
$sftp->rget($remote_dir, $localdir) or $newerr = 1;
push @ERRORS, "Cant tranfer\n" if $newerr;
myerr() if $newerr;
$sftp->disconnect if $newerr;
print "Files are …Run Code Online (Sandbox Code Playgroud) 我正在编写一些允许用户上传.zip文件的代码.当他们上传文件时,.zip会移动到服务器上的正确位置.一切正常.
我创建了一个按钮,允许用户删除他们上传的文件.当按钮单击时,我使用ajax来调用包含unlink();代码的.php文件.
Ajax Call
function delete_custom_pack() {
var phpfilepath = '/path/to/php/file/';
//console.log( phpfilepath );
jQuery.ajax({
method: 'get',
url: phpfilepath ,
success: function() {
alert("successfully got file");
},
error: function() {
alert("error getting file");
}
});
}
Run Code Online (Sandbox Code Playgroud)
PHP文件
<?php
$filename = 'http://www.some-site/wp-content/uploads/custom-folder/custom-pack/test.zip';
unlink($filename);
?>
Run Code Online (Sandbox Code Playgroud)
我收到"成功获取文件"的警报,但该文件永远不会在服务器上取消链接.它仍然驻留在目录中.成功的电话只是让我知道它成功获得了php文件.在unlink($file);我的PHP文件里似乎并没有被执行.
Get-ChildItem -recurse | ? {$_.Extension -eq ".obj" } | %{del $_}
~~~~~~
CategoryInfo : ObjectNotFound: (C:\Temp\compilerLimits\template.obj:String) [Remove-Item], ItemNotFoundException
FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
Run Code Online (Sandbox Code Playgroud)
试图以递归方式删除所有.obj文件; 相反,我明白了.
我一直试图通过按下按钮从jlist中删除文件,但似乎总是失败.我知道我从jlist获取的路径是正确的,因为我能够打开文件,我也尝试使用此代码使用绝对路径删除文件.有没有人在这里看到任何错误或者我做错了什么?
JButton btnDeleteLog = new JButton("Delete Log");
btnDeleteLog.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
File file = new File("C:/ProgramData/Logs/" + selectedJLItem);
file.delete();
if(file.delete()){
System.out.println(file.getName() + " Was deleted!");
ClientWindow.console(file.getName() + " Was Deleted Successfully!");
}else{
System.out.println("Delete Operation Failed. Check: " + file);
ClientWindow.console("Failed To Delete " + file.getName());
}
}catch(Exception e1){
e1.printStackTrace();
}
}
});
Run Code Online (Sandbox Code Playgroud) 我正在写一个有错误的备份程序.使用调试器逐步执行代码,我发现删除文件时出错.
我CFileFind用来找到文件,我CFileFind::GetFilePath()用来获取完整的路径名.
CFileFind find;
BOOL bContinue = find.FindFile(AppendPath(lpszPath, _T("*")));
while (bContinue)
{
bContinue = find.FindNextFile();
if (!find.IsDirectory())
{
if (find.IsReadOnly())
ClearReadOnlyAttribute(find);
if (!::DeleteFile(find.GetFilePath()))
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
DeleteFile()正在返回FALSE,并GetLastError()返回3(ERROR_PATH_NOT_FOUND),在其他情况下返回2(ERROR_FILE_NOT_FOUND).
如您所见,我首先尝试删除只读属性(如果已设置); 但是,我可以看到该文件存在且它没有只读属性.
需要注意的一点是文件名很长.这段代码实际上经过了测试,并且在较短的文件名下运行良好.在这种情况下,find.GetFilePath()返回:
\\ Readyshare\USB 3\Backups\DRIVEZ_BACKUP\Stacey\Backup 0001\Music\TO BE DELETED\iTunes\iTunes Media\Music\Dave Matthews Band \远离世界(豪华版)\远离世界(豪华版). itlp \音频\ DaveMatthewsBand_AwayFromTheWorld_backgroundaudio.m4a
这看起来是正确的.如果我将除文件名以外的所有文件复制到Windows资源管理器中,它会显示该文件夹 该文件存在于该文件夹中.
有谁知道为什么DeleteFile()会告诉我路径或文件不存在,实际上它确实存在?
更新:
基于Bruno Ferreira的回答,我通过以下方法运行我的文件名.(对不起旧的CString风格的代码,我正在更新旧的MFC程序.)
CString CBackupWorker::ConvertToExtendedLengthPath(LPCTSTR pszPath)
{
CString s(pszPath);
if (s.GetLength() >= MAX_PATH)
{
if (::isalpha(s[0]) …Run Code Online (Sandbox Code Playgroud) 我想使用TCL删除目录中的所有文件.(我在Win 10下使用Xilinx Vivado的TCL控制台.)我在TCL文档中发现了这一点
file delete ?-force? ?- -? pathname ?pathname ... ?
Run Code Online (Sandbox Code Playgroud)
应该管用.但
file delete -force -- [glob *]
Run Code Online (Sandbox Code Playgroud)
什么也没做.这有什么不对?