我只是有一个关于如何获取包含十六进制数字的文件长度的快速问题.例如:
724627916C
Run Code Online (Sandbox Code Playgroud)
我能想到的唯一方法是将十六进制值转换为二进制:
724627916C => 0111001001000110001001111001000101101100
Run Code Online (Sandbox Code Playgroud)
然后计算二进制值的位数.只是想知道这是否正确?谢谢
我正在使用Windows MFC应用程序.我正在准备我的设计中的报告列表,我CListCtrl可以列出文件的名称,大小,类型和修改日期.我不知道如何显示文件的大小.有谁知道怎么做?
在打开文件并将记录读入数组之前,如何以更好的方式告诉二进制文件中有多少条记录?
MyFile = fopen("DATA.dat", "rb");
i = 0;
while (feof(MyFile) == 0) {
fread(&tempReadingRecord,sizeof(tempReadingRecord), 1, file);
if (feof(MyFile) == 0 {
i++;
}
}
fclose(MyFile);
}
printf("%d", i); /* does work to find out how many records but optimal? */
Run Code Online (Sandbox Code Playgroud) 我正在查看fsockopen和诸如此类的PHP文档,并且他们说你不能在远程文件上使用filesize()而不用ftell或其他东西做一些疯狂的事情(不确定他们究竟说的是什么),但我有一个很好的想法怎么做:
$file = file_get_contents("http://www.google.com");
$filesize = mb_strlen($file) / 1000; //KBs, mb_* in case file contains unicode
Run Code Online (Sandbox Code Playgroud)
这会是一个好方法吗?它在当时看起来如此简单和好用,只是想知道如果这可能会遇到问题或者不是真正的文件大小.
我只希望通过二进制的方式在文本(网站)上使用它.
请告诉我InputFile.PostedFile.ContentLength测量的单位.我需要确保文件小于500k.
谢谢.
我正在检索文档目录中所有文件的大小.我正在使用这种方法attributesOfItemAtPath.它很成功.但我得到的是字节和类的输出NSNumber.它看起来不太好看.
所以,我需要以KB或MB的形式获取输出,我必须将它们转换NSString为以便将其存储在一个中,NSDictionary因为我必须在TableView中显示它.请帮我这样做.谢谢.
这是我的代码..
directoryContent = [[NSMutableArray alloc] init];
for (NSString *path in paths){
filesDictionary =[[NSMutableDictionary alloc] init];
filesSize = [[NSNumber alloc] init];
filesSize = [filesDictionary objectForKey:NSFileSize];
filesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:filesSize, @"filesSize", nil];
[directoryContent addObject:[filesDictionary copy]];
}
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码绑定tableView中无法正常工作的大小.
cell.lblSize.text = (NSString *) [[directoryContent objectAtIndex:listIndex] objectForKey:@"filesSize"];
Run Code Online (Sandbox Code Playgroud)
帮我将文件大小从byte转换为KiloByte并将其显示在tableView中.先感谢您..
我使用fputc(在C/C++中)将一些数据输出到一个文件中,文件大小对我来说很重要.但重新启动文件的大小似乎不正确,一个简单的代码示例:
FILE *fp = fopen( "123.txt", "w" );
for( int i=0; i<64; i++ )
fputc( i, fp );
fclose( fp );
Run Code Online (Sandbox Code Playgroud)
在排除此代码后,文件的大小为65B,而不是64B,但如果使用fputc(1,fp),则文件大小为64B.有什么伎俩吗?或者我可以做些什么来控制输出文件的大小?
我正在进行socket编程中的一项任务,我必须在sparc和linux机器之间发送一个文件.在char流中发送文件之前,我必须获取文件大小并告诉客户端.以下是我试图获得尺寸的一些方法,但我不确定哪一个是正确的.
出于测试目的,我创建了一个内容为"test"的文件(空格+(字符串)测试)
方法1 - 使用fseeko()和ftello()
这是我在https://www.securecoding.cert.org/confluence/display/c/FIO19-C.+Do+not+use+fseek()+and+ftell()+to+compute+上找到的方法.+大小+ + a +常规+文件 虽然fssek()有一个问题"将文件位置指示器设置为文件结尾,与fseek(文件,0,SEEK_END)一样,但是对于二进制文件有未定义的行为stream",fseeko()据说解决了这个问题,但它只适用于POSIX系统(这很好,因为我使用的环境是sparc和linux)
fd = open(file_path, O_RDONLY);
fp = fopen(file_path, "rb");
/* Ensure that the file is a regular file */
if ((fstat(fd, &st) != 0) || (!S_ISREG(st.st_mode))) {
/* Handle error */
}
if (fseeko(fp, 0 , SEEK_END) != 0) {
/* Handle error */
}
file_size = ftello(fp);
fseeko(fp, 0, SEEK_SET);
printf("file size %zu\n", file_size);
Run Code Online (Sandbox Code Playgroud)
此方法工作正常,并正确获得大小.但是,它仅限于常规文件.我试图谷歌术语"常规文件"但我仍然不太了解它.我不知道这个功能对我的项目是否可靠.
方法2 - 使用strlen()
自从最大 我的项目中的文件大小是4MB,所以我可以只调用一个4MB的缓冲区.之后,文件被读入缓冲区,我尝试使用strlen来获取文件大小(或更正确的内容长度).由于strlen()是可移植的,我可以使用这种方法吗?代码片段是这样的
fp = fopen(file_path, "rb");
fread(file_buffer, 1024*1024*4, 1, …Run Code Online (Sandbox Code Playgroud) PHP代码
echo filesize("a.jpg")."<br/>";
imagejpeg(imagecreatefromjpeg("a.jpg"), "a.jpg", 50);
echo filesize("a.jpg");
Run Code Online (Sandbox Code Playgroud)
产量
73104
73104
Run Code Online (Sandbox Code Playgroud)
我改变了图像质量,但filesize没有改变!
为什么filesize更改文件后函数没有立即更新?
我有一个(.TIFF)文件列表,我正在重命名并以相同的格式保存.我正在使用cv2模块来做到这一点.
import cv2
import os
import glob
os.chdir('C:/99_Temp/')
for file in glob.glob("*.tiff"):
f = os.path.splitext(file)
time_val = f[0][:2]
a1 = cv2.imread(file)
cv2.imwrite(time_val+'.tiff',a1)
Run Code Online (Sandbox Code Playgroud)
为什么文件大小会从原始TIFF文件中减少?我没有做任何处理,视觉上图像看起来一样.但我想知道,为什么区别?