关于FileSize的小问题

本文讨论了在Delphi环境下使用Windows SDK API获取文件大小时遇到的类型不兼容错误,并提供了一个有效的解决方案。通过调整变量类型和使用正确的文件操作方法,可以成功读取并显示文件的大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于FileSize的小问题 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiBase/html/delphi_20061208135104222.html
AssignFile(f,getPath+'\'+filename);  
      Reset(f);  
      size:=FileSize(f);  
  我想获得文件大小。  
  最后一句老报错[Error]   u_share.pas(452):   Incompatible   types:   'String'   and   'Text'  
  写在一个新的工程里就没有问题  
  不知道怎膜回事?

procedure   TForm1.Button1Click(Sender:   TObject);  
   
  var  
        f:   file   of   Byte;  
        size:   Longint;  
        S:   string;  
        y:   Integer;  
  begin  
      if   OpenDialog1.Execute   then  
      begin  
          AssignFile(f,   OpenDialog1.FileName);  
          Reset(f);  
          try  
              size   :=   FileSize(f);  
              S   :=   'File   size   in   bytes:   '   +   IntToStr(size);  
              y   :=   10;  
              Canvas.TextOut(5,   y,   S);  
              y   :=   y   +   Canvas.TextHeight(S)   +   5;  
              S   :=   'Seeking   halfway   into   file...';  
              Canvas.TextOut(5,   y,   S);  
   
              y   :=   y   +   Canvas.TextHeight(S)   +   5;  
              Seek(f,   size   div   2);  
              S   :=   'Position   is   now   '   +   IntToStr(FilePos(f));  
              Canvas.TextOut(5,   y,   S);  
          finally  
              CloseFile(f);  
          end;  
      end;  
  end;  
   
  看看列子吧   估计你f定义的有问题

楼上的专赚大分!!  
  fuck你PP

var   f:file   of   byte;  
          size:integer;  
  这是我的定义

你试着列子做做不就明白了?  
  关键要动手做啊

我写到一个新建的工程里就可以,加到我的工程里就报错

不知道有没有其他办法获取文件大小

转载于:https://www.cnblogs.com/delphi2007/archive/2009/02/11/1388376.html

### 检查 MultipartFile 文件大小限制或验证方法 在 Spring 中,`MultipartFile` 是用于处理文件上传的核心接口。为了检查文件大小限制或验证文件大小,可以通过以下方式实现: #### 1. 配置文件大小限制 在使用 `CommonsMultipartResolver` 或 `StandardServletMultipartResolver` 时,可以设置全局文件大小限制。例如,在 `springmvc-servlet.xml` 中配置 `multipartResolver` 的最大文件大小属性[^1]。 ```xml <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置上传文件的最大大小为 1MB --> <property name="maxUploadSize" value="1048576" /> </bean> ``` 通过上述配置,如果上传的文件大小超过指定值(如 1MB),Spring 将抛出 `MaxUploadSizeExceededException` 异常[^2]。 #### 2. 在控制器中验证文件大小 除了全局配置,还可以在控制器中手动验证文件大小。`MultipartFile` 提供了 `getSize()` 方法来获取文件的大小(以字节为单位)。以下是一个示例代码: ```java import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; @Controller public class FileUploadController { @PostMapping("/upload") public String handleFileUpload(@RequestParam("file") MultipartFile file) { if (file.isEmpty()) { return "redirect:/error?message=File is empty"; } long maxSize = 1024 * 1024; // 1MB if (file.getSize() > maxSize) { return "redirect:/error?message=File size exceeds the limit of " + maxSize + " bytes"; } // 处理文件逻辑 return "redirect:/success"; } } ``` 在上述代码中,`file.getSize()` 返回文件的大小,并与预定义的最大大小进行比较。如果文件大小超出限制,则返回错误页面或提示信息[^3]。 #### 3. 使用注解验证文件大小 Spring 还支持通过注解方式进行文件大小验证。可以结合 `@Valid` 和自定义注解来实现更灵活的验证逻辑。例如: ```java import javax.validation.constraints.Size; public class FileUploadRequest { @Size(max = 1048576, message = "File size must be less than or equal to 1MB") private MultipartFile file; // Getter and Setter } ``` 然后在控制器中使用 `@Valid` 注解: ```java @PostMapping("/upload") public String handleFileUpload(@Valid @ModelAttribute FileUploadRequest request) { // 如果文件大小不符合要求,将自动触发验证错误 return "redirect:/success"; } ``` 通过这种方式,可以在模型绑定阶段完成文件大小的验证,从而简化控制器逻辑[^4]。 --- ### 总结 - 全局文件大小限制可以通过配置 `CommonsMultipartResolver` 的 `maxUploadSize` 属性实现。 - 在控制器中,可以使用 `MultipartFile.getSize()` 方法手动验证文件大小。 - 结合注解验证(如 `@Size`)可以进一步简化文件大小的验证逻辑。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值