我们有这样的目录结构
..\文档名称_存档\YYYY\月份名称
例如,我们有许多子文件夹(在不同的文档名称文件夹中),名为 \2014\January ... 等
我们想要删除创建日期超过 180 天的所有文件夹及其内容。
我们更愿意只使用批处理文件脚本,但如果我们需要递归搜索,也许 VBScript 更好。
请问最好的办法是什么?
我的应用程序能够打开和处理某些文件。因此,您可以在文件管理器中点击这样的文件,我的应用程序将被提供来打开它。清单文件中的意图过滤器的设置如下。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="text/plain" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
像这样读取和处理文件效果很好:
Context.getContentResolver().openInputStream(getIntent().getData());
Run Code Online (Sandbox Code Playgroud)
问题是,我想在处理后删除该文件。(如果用户选中该文件的复选框)用户通常在使用我的应用程序打开该文件后不再需要该文件。
目前,只有当文件作为文件 uri(以 file:// 开头)提供给我时,我才能执行此操作。在这种情况下,这段代码可以正常工作:
new File(contentUri.getPath()).delete();
Run Code Online (Sandbox Code Playgroud)
但如果该文件作为内容 uri 提供,我不知道如何删除该文件。(以内容://开头)
例如,返回 null,并且不执行任何操作:
Context.getContentResolver().delete(getIntent().getData(), null, null);
Run Code Online (Sandbox Code Playgroud) 我有一个 Flask 后端,它根据一些用户输入生成图像,并使用send_file()Flask 的功能将该图像发送到客户端。
这是Python服务器代码:
@app.route('/image',methods=['POST'])
def generate_image():
cont = request.get_json()
t=cont['text']
print(cont['text'])
name = pic.create_image(t) //A different function which generates the image
time.sleep(0.5)
return send_file(f"{name}.png",as_attachment=True,mimetype="image/png")
Run Code Online (Sandbox Code Playgroud)
我想在将该图像发送到客户端后从服务器中删除它。
我该如何实现它?
从昨天开始,我无法从文件夹中删除文件\n这是我在控制器中的代码。\n\xe2\x80\x8b\npublic function update_avatar(Request $request)\n{
\n // Handle the user upload of avatar\n if ($request->hasfile('avatar')) {\n $avatar = $request->file('avatar');\n $filename = time() . '.' . $avatar->getClientOriginalExtension();\n if (auth()->user()->avatar) {\n // dd('/uploads/avatars/'. auth()->user()->avatar);\n Storage::delete('/uploads/avatars/'. auth()->user()->avatar);\n //dd(Storage::delete('/uploads/avatars/'. auth()->user()->avatar));\n }\n Image::make($avatar)->resize(500, 500)->save(public_path('/uploads/avatars/' . $filename));\n\n $user = Auth::user();\n $user->avatar = $filename;\n $user->save();\n }\n\n return view('profile', array('user' => Auth::user()) );\n\n}\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\x8b
\n调试该方法后,不会删除文件夹中的文件
\n\xe2\x80\x8b dd('/uploads/avatars/'. auth()->user()->avatar); \xe2\x80\x8b
我正确地获取了文件,但是当我调试时
\n dd(Storage::delete('/uploads/avatars/'. auth()->user()->avatar)); \xe2\x80\x8b
结果为假
\nps:我使用 laravel 8
\n我试图制作一个按钮,可以删除应用程序下载的文件(视频文件)。
当我使用File.delete()时,android studio 说它将被忽略,由此我开始知道这是 android 中的安全性问题。我想肯定删除该文件(在我的例子中,它是我的应用程序下载的视频文件)。希望有人帮助我。
这是我使用的代码:
path = "/some/folder/"
File file = new File(path);
file.delete();
Run Code Online (Sandbox Code Playgroud) 我制作了一个应用程序,当它经过测试时,测试人员制作了一个名为"Joe'sTestPage"的文件.其中包括:"Joes \'TestPage.htm".M问题是由于名称中的斜杠,文件是不可删除的.我已经尝试在我的cpanel中使用我的ftp,但是也无法将其删除.
有谁知道解决方案?
我需要从存储图片的文件夹中删除图片.例如,C:\ Milk\Pictures文件夹中的文件.我该怎么做呢?
我正在研究ac项目,我需要从目录中删除一个文件.出于某种原因,虽然它继续说它无法删除,因为文件或目录不存在.下面是我用来删除文件的代码.
void deleteOldestLog()
{
FILE *fp;
char path[FILE_PATH_BUF_LEN], *fileName;
fp = popen("ls -tr /home/myfolder/logs/ |head -1", "r");
if (fp == NULL)
{
printf("Failed to run command");
}
else
{
char removalPath[FILE_PATH_BUF_LEN];
while ((fileName = fgets(path, sizeof(path)-1, fp)) != NULL)
{
sprintf(removalPath, "/home/myfolder/logs/%s", fileName, sizeof(fileName)-1);
printf("Removing file: %s", removalPath);
if (remove(removalPath) != 0)
{
perror("ERROR DELETING LOG");
}
else
{
printf("Successfully deleted %s", removalPath);
}
break;
}
pclose(fp);
}
}
Run Code Online (Sandbox Code Playgroud)
即使它说它找不到文件因为它不存在我知道这不是真的,因为如果我运行ll后跟c程序打印的路径它返回我试图删除的文件.
我想这可能是因为fgets将'\ 0'放在字符串的末尾,这会阻止删除工作.
我怎样才能解决这个问题?
我的目标是从中删除1000万个临时文件dir.所以,我试着写一个Python脚本来做这件事.第一个场景看起来像这样:
#!/usr/bin/python
import os,sys
dirname = os.getcwd() if len(sys.argv) == 1 else sys.argv[1]
deleteConfirm = raw_input('Delete all files from dir ' + str(dirname) + ' (y/n)? ')
if(deleteConfirm not in ['y','Y']):
os._exit(0)
counter = 0
flist = os.listdir(dirname)
for file in flist:
os.remove(os.path.join(dirname, file))
counter+=1
if(0==counter%1000):
sys.stdout.write('\rDeleted %d files' % counter)
sys.stdout.flush()
print '\nDeleted %d files' % counter
Run Code Online (Sandbox Code Playgroud)
这段代码有效,但我发现它每隔10-15秒就会停止一次,并且在大约一分钟左右不起作用.例如,前几秒场景快速输出已删除文件的数量 - 它只删除28 000个文件仅3-5秒,但随后它的输出在"已删除的28000个文件"上停止并等待很长时间 - 分钟左右.然后再次输出快速更新,并在几秒钟内再次删除数千个文件.但它又一次停下来等待着什么.我认为这是由于锁定文件,所以我尝试使用python3和多处理模块编写新方案,以删除几个进程中的文件.我认为它可能会有所帮助,因为即使一个进程等待某个文件要取消时钟,其他进程也会完成它们的工作.
这是新脚本:
#!/usr/bin/python3
import os, sys, time
from multiprocessing import Pool
dirname …Run Code Online (Sandbox Code Playgroud) 我需要计算在这个递归函数中删除的文件数.由于它是递归的,我不能使用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);
//count++
}
Console.WriteLine(filePath); // print files
}
Console.WriteLine(dirPath); // print directories
DirSearch(dirPath);
}
}
catch (System.Exception excpt)
{
Console.WriteLine(excpt.Message);
}
}
Run Code Online (Sandbox Code Playgroud) delete-file ×10
android ×1
batch-file ×1
c ×1
c# ×1
command-line ×1
counter ×1
delphi ×1
delphi-xe2 ×1
dir ×1
file ×1
filenames ×1
filesystems ×1
flask ×1
java ×1
laravel ×1
linux ×1
performance ×1
php ×1
python ×1
python-3.x ×1
recursion ×1
sendfile ×1
slash ×1
vbscript ×1