2時間で同様の問題が発生し、IsFileInUseが使用され、使用されていることを確認してください。 MapObjectsLtを使用してjpgイメージを読み込みますが、私は少しファイルロックを理解していますが、このソフトウェアはWindows 7で完全に機能しました。今では新しいノートパソコンでWindows 10に移行しましたが、今はエラーが発生します。自分自身とWindowsエクスプローラは私が知っている唯一のユーザーですので、誰も開いているときにイメージを配置する小さなテキストファイルはありません。私は違いがWindowsにあると思う。 ProcExp.exeを使用して、そのファイルをロックしている/使用しているプロセスを調べましたが、その小さな6行ファイルが見つかりませんでした。私は自分のコードを変更し、最初にjgw/textファイルを変更する前にイメージをアンロードした後、リロードして再配置します。 MapObjectsLtがファイルをロックし、Windows 7が変更を許可した場合コード内でこれを何らかの形で変更しますか?つまり、重要なことを誰も知らずにハンドルを削除することです。ファイルを使用していますか?ReWrite(f)を使用したDelphi 7でのファイルアクセスエラープログラミング
procedure SaveWorldFile(FileName:TFileName);
var f:TextFile; i:Integer; Ext:String[4]; ImageFile:TFileName;
begin
ImageFile:=FileName;
if Pos('.SID',UpperCase(FileName))<>0 then Ext:='.sdw' else
if Pos('.JPG',UpperCase(FileName))<>0 then Ext:='.jgw' else Ext:='.tfw';
FileName:=ChangeFileExt(FileName,Ext);
//tried to close the handle in this function..because
//I believe at this point I am the only one using this file.
//Did not work but was part of my hunt for a solution
//I used for a different reason but found on this site
IsFileInUse(FileName);
//This section worked before and last line reloads the image
//The image is "untouched" only its position changes
//This worked under Windows 7 now Windows 10 does not
AssignFile(f,FileName);
ReWrite(f); //error under Windows 10
for i:=1 to 6 do WriteLn(f,P[i]:0:8);
CloseFile(f);
//Now reload the image
frmWRM.AddImageLayer(ImageFile);
end;
ようこそスタックオーバーフロー!あなたの問題をより簡潔に説明して、他の人があなたがすでにやったことやあなたの問題が何であるかを理解できるようにしてください。質問を改善する方法については、https://stackoverflow.com/help/how-to-askを参照してください。 –
あなたが取得しているコードと例外を投稿すると役に立ちます – GuidoG