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 に答える