本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下
由于程序一直在不停地存图,因此需要监测图片文件夹的大小,一旦超过指定大小则删除一部分最早的图片。
采用开线程的方式,在线程里每隔一段时间键执行一次监测过程。
即 测文件夹大小->若超过则将文件夹里的文件按最后修改时间排序->删除一些最早的图片->删的过程中监测文件夹大小是否符合要求
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# -*- coding: utf-8 -*- # # 开线程检测文件夹大小,超过指定大小,则按文件最后修改时间排序并删除一部分旧图片 # 在线程里每隔一段时间检测一次 # import os import threading import time #文件按最后修改时间排序 def get_file_list(file_path): dir_list = os.listdir(file_path) if not dir_list: return else : dir_list = sorted (dir_list, key = lambda x: os.path.getmtime(os.path.join(file_path, x))) #print(dir_list) return dir_list #获取文件夹大小 def get_size(file_path): totalsize = 0 for filename in os.listdir(file_path): totalsize = totalsize + os.path.getsize(os.path.join(file_path, filename)) #print(totalsize / 1024 / 1024) return totalsize / 1024 / 1024 # 1文件目录 2文件夹最大大小(M) 3超过后要删除的大小(M) def detect_file_size(file_path, size_Max, size_Del): print (get_size(file_path)) if get_size(file_path) > size_Max: fileList = get_file_list(file_path) for i in range ( len (fileList)): if get_size(file_path) > (size_Max - size_Del): print ( "del :%d %s" % (i + 1 , fileList[i])) os.remove(file_path + fileList[i]) #检测线程,每个5秒检测一次 def detectPicSize(): while True : print ( '======detect============' ) detect_file_size( "../pic/" , 30 , 5 ) time.sleep( 5 ) if __name__ = = "__main__" : #创建检测线程 detect_thread = threading.Thread(target = detectPicSize) detect_thread.start() |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_24282081/article/details/105267969