導航:首頁 > 文件教程 > delphi取文件大小

delphi取文件大小

發布時間:2023-05-02 18:38:53

❶ 使用Delphi編寫讀取文件有多少bit位代碼是什麼

給你個標準的能用的函數:

function GetFileSize(sFileName: string): real;

var

f: TFileStream;

begin

if FileExists(sFileName) then

begin

f := TFileStream.Create(sFileName, fmOpenRead or fmShareDenyNone);

Result := f.Size ; //返迴文件大小

f.Free;

end

else

Result := 0;

end;

得到的大小就是 bit,想轉成KB 就 /1024 想轉成MB 就 除2個1024


❷ delphi 如何獲取文件的大小和類型

示例代碼如下:


  1. 首先,uses 添加IdGlobalProtocols。


2.

functionTForm1.GetFileSizeStr(fName:string):string;
varnSize:Integer;
begin
nSize:=FileSizeByName(fName);
ifnSize>1073741824then
Result:=FormatFloat('###,##0.00G',nSize/1073741824)
elseifnSize>1048576then
Result:=FormatFloat('###,##0.00M',nSize/1048576)
elseifnSize>1024then
Result:=FormatFloat('###,##00K',nSize/1024)
else
Result:=FormatFloat('###,#0B',nSize);
ifLength(Result)>2then
ifResult[1]='0'then
Delete(Result,1,1);
end;

procereTForm1.Button1Click(Sender:TObject);
begin
ShowMessage('文件大小是:'+GetFileSizeStr('d: able.mdb'));
end;


示例截圖:


❸ DELPHI文件、磁碟操作函數

軟體大多都要對文件 磁碟進行操作 熟悉掌握這些函數可以幫助你輕松實現創建 刪除 保存文件等功能

Append功能說明 追加內容到文件中 文件必須要存在

參考實例

var

S String

F TextFile

begin

S = This is a book

AssignFile(F C MyFile txt ) // 將C MyFile txt文件與F變數建立連接 後面可以使用F變數對文件進行操作

Append(F) // 以追加的方式打開文件

Writeln(F S) // 將S變數中的內容追加到文本尾後

CloseFile(F) // 關閉文件

end

AssignFile功能說明 與指定的文件建立連接

參考實例

var

F TextFile // 聲明文本文件類型變數

begin

AssignFile(F C MyFile txt ) // 將C MyFile txt文件與F變數建立連接 後面可以使用F變數對文件進行操作

end

ChDir功能說明 改變當前目錄(文件夾)

參考實例

var

sDir String

begin

sDir = C Windows

ChDir(sDir) // 此時 系統的當前目錄則為C Windows目錄

舉碰end

CloseFile功能說明 關閉文件 當對文件的操作完成後 應該使用CloseFile函數關閉打開的文件

參考實例

var

S String

AllText String

F TextFile

begin

AssignFile(F C MyFile txt ) // 將C MyFile txt文件與F變數建立連接 後面可以使用F變數對文件進行操作

Reset(F) // 打開文件

while not EOF(F) do begin // 使用While循環 一直判斷是否到了文件未尾

Readln(F S) // 讀取一行文本

AllText = AllText + S

end

CloseFile(F) // 關閉文件

end

DeleteFile功能說明 刪除指定的文明答逗件 該函數只有一個參數 此參數為欲刪除文件的完整路徑 如果刪除成功 則返回True 若刪除失敗 或文件不存在則返回False

參考實例

var

IsOK Boolean // 用於保存刪除狀態

begin

IsOK = DeleteFile( C My Documentsl ) // 函數執著後 將結果返回給IsOK變數 如果IsOK變數為True 則表示文件刪除成功

if IsOK then ShowMessage( 文件刪除成功! )

else ShowMessage( 文件刪除失敗! )

end

DirectoryExists功能說明 檢測指定的文件夾否存在 如果存在則返回True 反之則為False

參考實例

var

IsExists Boolean

begin

IsExists = DirectoryExists ( C Windows )

if IsExists then ShowMessage( Windows文件夾存在! )

else ShowMessage( Windows文件夾不存在! )

end

DiskFree功能說明 獲取指定磁碟的剩餘空間 該函數只有一個參數 該參數用於指定要獲取剩餘空間的磁碟號 當參數為 時 表示獲取當前磁碟的剩餘空間 為A盤 為B盤 以此類推 如果返回值為

表示指定激賣的磁碟無效

參考實例

var

FreeSize Int

begin

FreeSize = DiskFree( ) // 獲取C盤中的剩餘空間 返回的值是以 位元組 為單位的

end

DiskSize功能說明 獲取指定磁碟的空間 該函數只有一個參數 該參數用於指定要獲取磁碟空間的磁碟號 當參數為 時 表示獲取當前磁碟的空間 為A盤 為B盤 以此類推 如果返回值為 表示指

定的磁碟無效

參考實例

var

DiskSize Int

begin

DiskSize = DiskSize( ) // 獲取C盤的空間 返回的值是以 位元組 為單位的

end

EOF功能說明 判斷文件指針是否移動到了文件未尾 當EOF函數返回值為True時 則不可以使用Readln函數進行讀取文件了

參考實例

var

S String

AllText String

F TextFile

begin

AssignFile(F C MyFile txt ) // 將C MyFile txt文件與F變數建立連接 後面可以使用F變數對文件進行操作

Reset(F) // 打開文件

while not EOF(F) do begin // 使用While循環 一直判斷是否到了文件未尾

Readln(F S) // 讀取一行文本

AllText = AllText + S

end

end

Erase功能說明 刪除文件

參考實例

var

F File

begin

AssignFile(F C MyFile txt ) // 將C MyFile txt文件與F變數建立連接 後面可以使用F變數對文件進行操作

Reset(F) // 打開文件

CloseFile(F) // 關閉文件

Erase(F) // 刪除文件 在刪除文件之前必須先關閉文件

end

FileExists功能說明 檢測指定的文件否存在 如果存在則返回True 反之則為False

參考實例

var

IsExists Boolean

begin

IsExists = FileExists( C Test txt )

if IsExists then ShowMessage( 該文件存在! )

else ShowMessage( 該文件不存在! )

end

FileSize功能說明 獲取文件大小 返回的結果是位元組為單位

參考實例

var

F file of Byte

nSize Longint

begin

AssignFile(F C MyFile txt ) // 將C MyFile txt文件與F變數建立連接 後面可以使用F變數對文件進行操作

Reset(F) // 打開文件

nSize = FileSize(F) // 獲取文件大小

CloseFile(F) // 關閉文件

end

ForceDirectories功能說明 創建新的子目錄 路徑中不存在的目錄將一同創建

參考實例

ForceDirectories( C FlashMyFolder ) // 如果Flash文件夾本身不存的話 那麼將會先創建Flash文件夾 然後再創建MyFolder文件夾

MkDir功能說明 創建一個新的子目錄(文件夾)

參考實例

MkDir( C MyFolder ) // 在C盤根目錄中創建了一個名叫MyFolder的文件夾

需要注意的是 如果在本身不存在的目錄中創建子目錄將會失敗 比如C盤根本不存在Flash文件夾 寫成MkDir( C FlashMyFolder ) 這樣將不能成功創建MyFolder文件夾

Reset功能說明 以只讀方式打開文件

參考實例

var

F TextFile // 聲明文本文件類型變數

begin

AssignFile(F C MyFile txt ) // 將C MyFile txt文件與F變數建立連接 後面可以使用F變數對文件進行操作

Reset(F) // 打開文件

end

Rewrite功能說明 以可寫方式打開文件 如果文件不存在 將會自動創建 使用該函數 將會覆蓋文件中的所有內容

參考實例

var

F TextFile // 聲明文本文件類型變數

begin

AssignFile(F C MyFile txt ) // 將C MyFile txt文件與F變數建立連接 後面可以使用F變數對文件進行操作

Rewrite(F) // 打開文件 如果文件不存在 將會在C盤中創建MyFile txt文件 如果文件存在 將會覆蓋MyFile txt中的所有內容

end

Readln功能說明 讀取一行文本

參考實例

var

S String

F TextFile

begin

AssignFile(F C MyFile txt ) // 將C MyFile txt文件與F變數建立連接 後面可以使用F變數對文件進行操作

Reset(F) // 打開文件

Readln(F S) // 讀取一行文本到S變數中

end

Rename功能說明 更改文件名

參考實例

var

F File

begin

AssignFile(F C MyFile txt ) // 將C MyFile txt文件與F變數建立連接 後面可以使用F變數對文件進行操作

ReName(F C NewFile txt ) // 更名為NewFile txt

end

Writeln功能說明 寫入一行文本

參考實例

var

S String

F TextFile

begin

S = This is a book

AssignFile(F C MyFile txt ) // 將C MyFile txt文件與F變數建立連接 後面可以使用F變數對文件進行操作

Rewrite(F) // 創建新文件

Writeln(F S) // 將S變數中的內容寫入文本中

lishixin/Article/program/Delphi/201311/8445

❹ delphi如何獲得文件大小

添加一個openDialog組賀游檔件
var rmFilestream:Tfilestream;
xuanzewenjian:string;
MemSize:integer;
begin
if (openDialog1.Execute) and (openDialog1.FileName<>磨凳'') then
begin
xuanzewenjian:=OpenDialog1.FileName;//獲取文件名稱及完整路徑
rmFilestream:=TFileStream.Create(xuanzewenjian,fmopenRead);
rmFilestream.Position:=0;
MemSize:= rmFilestream.Size;/禪亂/獲取文件大小
showmessage(inttostr(memsize));
end;
end;

❺ delphi 如果我想獲得textfile文件的長度或者行數,那麼應該怎麼辦了

var filea:file of byte; fsize:integer;begin assignfile('txt.txt',filea); reset(filea); fsize:=filesize(filea);//獲得文件大小 end; end; 查看更多版答案權>>

❻ delphi讀取大容量txt並對其進行一個處理

我嘗試寫了一個過程,參數分別是要處理的文件InFile,結果文件OutFile,寬字元數量WideWordCount

procere DoText(const InFile, OutFile: string; WideWordCount: Integer);
var
FileStream: TFileStream;
OutList: TStringList;
TmpStr: string;
Cnt, ReadCnt: Integer;
begin
OutList := TStringList.Create;
FileStream := TFileStream.Create(InFile, fmOpenRead or fmShareDenyNone);
try
Cnt := WideWordCount * 2;
SetLength(TmpStr, Cnt);

while True do
begin
ReadCnt := FileStream.Read(TmpStr[1], Cnt);
if ReadCnt < Cnt then
begin
SetLength(TmpStr, ReadCnt);
OutList.Add(TmpStr);
Break;
end;
OutList.Add(TmpStr);
end;

OutList.SaveToFile(OutFile);
finally
OutList.Free;
FileStream.Free;
end;
end;

❼ delphi 預估jpg修改後容量大小

沒辦法預估(或者說預估出來的很大手埋不準),你可以在修滾螞改長寬後自動先在一個文件夾(比如系統的臨時目錄)保存一個臨時的jpg,薯螞取它的大小。

❽ 在DELPHI中如何用文件流讀寫幾百M大的文件呢

unit U_Client;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, Math,
StdCtrls, ComCtrls;

type
Tfrm_Client = class(TForm)
SaveDialog1: TSaveDialog;
IdTCPClient1: TIdTCPClient;
Button1: TButton;
StatusBar1: TStatusBar;
Edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
Label2: TLabel;
procere Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frm_Client: Tfrm_Client;

implementation

{$R *.dfm}

procere Tfrm_Client.Button1Click(Sender: TObject);
var
cmd: string;
ASize, TotalSize: Int64;
AFileStream: TFileStream;
begin
IdTCPClient1.Host := Edit1.Text; //連接主機
IdTCPClient1.Port := StrToIntDef(Edit2.Text, 9925); //埠
IdTCPClient1.Connect; //連接
try
IdTCPClient1.WriteLn('BEGIN'); //提示伺服器開始接收
cmd := IdTCPClient1.ReadLn;
//以「|」符號分離文件名
SaveDialog1.FileName := Copy(cmd, Pos('|', cmd) + 1, Length(cmd));
if not SaveDialog1.Execute then
begin
IdTCPClient1.WriteLn('CANCEL'); //告訴伺服器取消
IdTCPClient1.Disconnect; //斷開連接
exit;
end;
TotalSize := StrToInt(Copy(cmd, 0, Pos('|', cmd) - 1)); //分離文件大小
//建立文件流准備接收
AFileStream := TFileStream.Create(SaveDialog1.FileName, fmCreate);
try //循環開始接受
repeat
IdTCPClient1.WriteLn(IntToStr(AFileStream.Size));//發送當前傳輸的位置
ASize := Min(TotalSize - AFileStream.Size, IdTCPClient1.RecvBufferSize);
//選擇剩餘大小和緩沖區大小小的一個作為傳輸的大小
IdTCPClient1.ReadStream(AFileStream, ASize); //接收流
StatusBar1.SimpleText := Format('當前傳輸位置%d/大小%d', [AFileStream.Size, TotalSize]);
Application.ProcessMessages;
until AFileStream.Size = TotalSize; //大小一致了表示結束
finally
AFileStream.Free; //釋放文件流
end;
IdTCPClient1.WriteLn('END'); //提示伺服器傳輸完成
StatusBar1.SimpleText := '傳輸完成...';
except
StatusBar1.SimpleText := '連接伺服器失敗或者對方已經中斷傳輸!';
end;
IdTCPClient1.Disconnect;
end;

end.

unit U_Server;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, IdBaseComponent, IdComponent, IdTCPServer, Math;

type
Tfrm_Server = class(TForm)
IdTCPServer1: TIdTCPServer;
Button1: TButton;
Button2: TButton;
Button3: TButton;
ProgressBar1: TProgressBar;
StatusBar1: TStatusBar;
Edit1: TEdit;
Button4: TButton;
OpenDialog1: TOpenDialog;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
procere Button1Click(Sender: TObject);
procere Button4Click(Sender: TObject);
procere Button2Click(Sender: TObject);
procere Button3Click(Sender: TObject);
procere IdTCPServer1Execute(AThread: TIdPeerThread);
procere FormClose(Sender: TObject; var Action: TCloseAction);
private
AFileStream: TFileStream; //傳輸的文件流
procere ButtonBegin;
procere ButtonEnd;
{ Private declarations }
public
{ Public declarations }
end;

var
frm_Server: Tfrm_Server;

implementation

{$R *.dfm}

procere Tfrm_Server.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Edit1.Text := OpenDialog1.FileName;
end;

procere Tfrm_Server.Button4Click(Sender: TObject);
begin
Close;
end;

procere Tfrm_Server.Button2Click(Sender: TObject);
begin
if not FileExists(Edit1.Text) then //檢測文件是否存在
begin
Showmessage('文件不存在,請選擇文件!');
exit;
end;
//建立文件流
AFileStream := TFileStream.Create(Edit1.Text, fmOpenRead);
ProgressBar1.Max := AFileStream.Size;
ProgressBar1.Position := 0;
ButtonBegin; //VCL開始狀態設置
//伺服器准備好連接
IdTCPServer1.DefaultPort := StrToIntDef(Edit2.Text, 9925);
if not IdTCPServer1.Active then IdTCPServer1.Active := True;
end;

procere Tfrm_Server.ButtonBegin;
begin //VCL開始狀態設置
Button1.Enabled := False;
Button2.Enabled := False;
Button3.Enabled := True;
Button4.Enabled := False;
end;

procere Tfrm_Server.ButtonEnd;
begin //VCL結束狀態設置
Button1.Enabled := True;
Button2.Enabled := True;
Button3.Enabled := False;
Button4.Enabled := True;
end;

procere Tfrm_Server.Button3Click(Sender: TObject);
begin
StatusBar1.SimpleText := '傳輸取消...';
AFileStream.Free; //釋放文件流
ButtonEnd; //VCL結束狀態設置
end;

procere Tfrm_Server.IdTCPServer1Execute(AThread: TIdPeerThread);
var
cmd: string; //接收到客戶端的字元串信息
ASize: Integer; //需要傳輸的流大小
begin
with AThread.Connection do //已經連街上的一個進程
begin
cmd := UpperCase(ReadLn); //客戶端發送的命令字元串
if cmd = 'BEGIN' then //開始傳輸
begin
//告訴遠程傳輸文件的大小和文件名
WriteLn(Format('%d|%s', [AFileStream.Size, ExtractFileName(Edit1.Text)]));
StatusBar1.SimpleText := '准備傳輸...';
Exit;
end;
if cmd = 'END' then
begin //傳輸完成
Button3.Click;
StatusBar1.SimpleText := '傳輸完成...';
Exit;
end;
if cmd = 'CANCEL' then
begin //傳輸取消
StatusBar1.SimpleText := '傳輸取消...';
//保持傳輸狀態
Exit;
end;
//按照指定位置傳輸文件
AFileStream.Seek(StrToInT(cmd), soFromBeginning); //轉到文件流傳輸的位置
ASize := Min(AFileStream.Size - AFileStream.Position, RecvBufferSize);
//計算需要發送的大小,Min()函數在Math單元
OpenWriteBuffer; //准備發送緩沖
WriteStream(AFileStream, false, false, ASize);
//注意這個函數的參數。
CloseWriteBuffer; //結束發送緩沖
StatusBar1.SimpleText := Format('當前傳輸位置%s/大小%d', [cmd, AFileStream.Size]);
ProgressBar1.Position := ProgressBar1.Position + ASize;
end;
end;

procere Tfrm_Server.FormClose(Sender: TObject; var Action: TCloseAction);
begin
IdTCPServer1.Active := False;
end;

end.

希望能幫到你!

❾ 網上找到一段delphi讀取文件大小的代碼,但是輸出的memsize是int64位的整數,怎麼轉換呢如下

1、不是廢話么,文件大小當然是以位元組表示,難道誰還按K、G給你轉換一下?
201210 / 1024 = 196.494140625K。
2、rmFilestream.Size是Int64,MemSize你自己定義的32位Integer,MemSize會自動取rmFilestream.Size的低32位,不用你管。

閱讀全文

與delphi取文件大小相關的資料

熱點內容
蘋果手機小風扇圖app叫什麼 瀏覽:292
繁體中文輸入工具 瀏覽:916
pc桌面壁紙文件夾 瀏覽:473
微信怎麼添加群 瀏覽:781
40歲男人適合的微信名 瀏覽:925
編程里比例怎麼打 瀏覽:215
蘋果12兩個app如何分屏 瀏覽:592
ps下載完不是壓縮文件 瀏覽:362
電腦中的個人文件包括什麼 瀏覽:572
網路連接一般什麼密碼 瀏覽:199
java定時器quartz實例 瀏覽:259
稻殼excel文件太大怎麼弄 瀏覽:901
文件里的視頻如何保存到相冊 瀏覽:428
手機百度雲文件電腦 瀏覽:957
編程怎麼做到時鍾精準 瀏覽:912
錘子用過的壁紙在哪個文件里 瀏覽:468
qq網站安全性未知訪問不了怎麼辦 瀏覽:270
燕秀怎麼修改編程人名字 瀏覽:789
2012年天之眼導航升級 瀏覽:595
如何安裝視頻文件 瀏覽:315

友情鏈接