這就是我所做的修復它,它是解決方法,但它至少工作。返回文件流的
1. Instred我回到T流,我用的功能IsFileInUse
Files.IsFileInUse(path); //Check if file is used and try to free it
fs := TFileStream.Create(path, fmOpenRead or fmShareDenyNone);
fs.Position := 0;
RecordSize := SizeOf(Measurements);
StreamSize := fs.Size;
j := (StreamSize div RecordSize) - 1;
result := TMemoryStream.Create();
for i := 0 to j do
begin
result.CopyFrom(fs, RecordSize);
end;
FreeAndNil(fs);
//result := TFileStream.Create(path, fmOpenRead or fmShareDenyNone);
result.Position := 0;
2.修改在客戶端應用程序第一次下載文件,但它堅持了例外第二次。因此,儘量不要嘗試重複同樣的呼叫2次。它看起來像下載文件調用1調用rase異常,但它也免費流,所以第二次調用每次工作。
try
try
fs := TFileStream.Create(FilePath + RecordFileNameAPI, fmCreate);
st := TMemoryStream.Create();
st := APIClientModule.ServerMethodsBlob.getRecordingbyId(RecordFileNameAPI);
st.Position := 0;
RecordSize := SizeOf(Measurements);
StreamSize := st.Size;
j := (StreamSize div RecordSize) - 1;
setlength(MeasurementArrayAPI, j + 1);
// Copy Stream to memory object
for i := 0 to j do
begin
st.Read(Measurements, RecordSize);
MeasurementArrayAPI[i] := Measurements;
end;
// Copy Stream to File
st.Position := 0;
for i := 0 to j do
begin
fs.CopyFrom(st, RecordSize);
end;
Except
begin
try
FreeAndNil(fs);
FreeAndNil(st);
fs := TFileStream.Create(FilePath + RecordFileNameAPI, fmCreate);
st := TMemoryStream.Create();
st := APIClientModule.ServerMethodsBlob.getRecordingbyId(RecordFileNameAPI);
st.Position := 0;
RecordSize := SizeOf(Measurements);
StreamSize := st.Size;
j := (StreamSize div RecordSize) - 1;
setlength(MeasurementArrayAPI, j + 1);
// Copy Stream to memory object
for i := 0 to j do
begin
st.Read(Measurements, RecordSize);
MeasurementArrayAPI[i] := Measurements;
end;
// Copy Stream to File
st.Position := 0;
for i := 0 to j do
begin
fs.CopyFrom(st, RecordSize);
end;
Except
exc := true;
end;
end;
end;
finally
FreeAndNil(fs);
FreeAndNil(st);
if(not exc) then
begin
//APIClientModule.ServerMethodsBlob.completeDownloding();
if Assigned(FonGetLastRecordingDataAPIFinihed) then
FonGetLastRecordingDataAPIFinihed();
end;
end;
你在哪個平臺上使用它? –