こんにちは、フォルダから文字列リストにファイル名のリストをロードしようとしています。.jpg で終わるファイルの名前だけを追加したいのですが、実行するとアクセス違反エラーが発生します。これが私が得たものです。
ディレクトリを選択します。
procedure TMainForm.Load1Click(Sender: TObject);
var
DirName: string;
begin
mylist.Free;
myList := TList<TBitmap>.Create;
DirName := 'c:\';
if SelectDirectory(DirName,[sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP)
then;
LoadImages(DirName);
end;
フォルダー内の合計ファイル数を取得します
function GetFilesCount(Dir : string; Mask : string) : integer;
var
Path : string;
begin
Result := 0;
for Path in TDirectory.GetFiles(Dir, Mask) do
inc(Result);
end;
フォルダからファイル名を取得します
function TMainForm.GetFilenames(Path: string ):TStrings;
var
Dest: TStrings;
SR: TSearchRec;
begin
Dest.create;
if FindFirst(Path+'*.*', faAnyFile, SR) = 0 then
repeat
Dest.Add(SR.Name);
until FindNext(SR) <> 0;
FindClose(SR);
Result := Dest;
Dest.Free;
end;
と負荷画像
procedure TMainForm.LoadImages(const Dir: string);
const
FIRST_IMAGE = 0;
var
iFile : Integer;
CurFileName: string;
FoundFile : boolean;
FileNameTemplate : string;
FileNames : Tstrings;
begin
FileNames.Create;
FileNameTemplate := IncludeTrailingPathDelimiter(Dir) + '*.jpg'; FileNames:=GetFileNames(FileNameTemplate);
try
ifile := 0;
repeat
CurFileName := FileNames.Names[ifile];
showmessage(Curfilename);
if FoundFile then
begin
end;
Inc(iFile);
end;
until not FoundFile;
end;