windows10 中的壁纸每天都会自动更换,有些壁纸确实美轮美奂,想备份这些壁纸到nas中:
1、搜索windows10的壁纸在指定的路径下:
procedure TForm1.Button1Click(Sender: TObject);
begin
self.dcDiskScanner1.Folder := 'C:\Users\HP\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets';
self.dcDiskScanner1.SearchMask := '*.*';
self.dcDiskScanner1.IncludeSubfolders := false;
Self.dcDiskScanner1.Execute;
end;
2、列出找到的壁纸:
procedure TForm1.dcDiskScanner1FileFound(Sender: TObject; const FileName,
FileType: string; const FileSize: Extended; const FileTime: TDateTime;
const FileAttributes: TdcScanAttributes; const LargeIcon,
SmallIcon: TIcon; SysImageIndex, TotalFiles: Integer;
const TotalSize: Extended);
begin
self.CheckListBox1.Items.Add(FileName);
end;
3、查看壁纸:
procedure TForm1.CheckListBox1Click(Sender: TObject);
var
Stream: TMemoryStream;
Jpg: TjpegImage;
begin
Stream := TMemoryStream.Create;
Jpg := TjpegImage.Create;
Stream.LoadFromFile(self.CheckListBox1.Items[self.CheckListBox1.itemindex]);
//TBlobField(FieldByName('picture')).SaveToStream(Stream); ? // 显示的转换为BlobField并保存到内存流
Stream.Position := 0;
jpg.LoadFromStream(Stream); // 加载图片
self.
Image1.Picture.Assign(Jpg);
Stream.Free;
Jpg.Free;
end;
4、上传壁纸:
procedure TForm1.Button2Click(Sender: TObject);
var
icount: Integer;
begin
if idftp1.Connected = False then
begin
IdFTP1.Host := '192.168.31.132';
IdFTP1.Port := 21;
IdFTP1.Username := 'username';
IdFTP1.Password := '123456';
IdFTP1.Connect(True);
end;
if IdFTP1.Connected then
begin
for icount := 0 to Self.CheckListBox1.Count - 1 do
begin
try
IdFTP1.ChangeDir('/test');//改变路径到test文件夹
IdFTP1.Put(self.CheckListBox1.Items[icount],
ExtractFileName(self.CheckListBox1.Items[icount])+'.jpg');//在文件名称后加上jpg
Application.ProcessMessages;
finally
end;
end;
end;
end;