0

对于普通文件路径,我可以使用 stat 并获取它的大小。当路径包含 C:\temp\sमानकe\app.log 等非 ascii 名称时,它不起作用。

int main(int argc, char * argv[])
{
      struct stat FileAttrib;

      if (stat(argv[1], &FileAttrib) < 0) {
            printf("File Error Message = %s\n", strerror(errno));
      }
      else
      {
           printf("File size %d\n",  FileAttrib.st_size);
      }
      return 0;
}

stat 只需要 char *。从命令提示符收到的路径并不是真正的有效文件。

在此处输入图像描述

4

1 回答 1

2

假设您使用的是 Windows,请尝试使用GetShortPathNameW获取短路径名称(如果存在),然后将短名称传递给stat().

于 2012-04-18T18:33:15.440 回答