是在sql server中吗?
如果是。使用下面的试试:
--查看c:\templog文件的大小
exec masterdboxp_cmdshell 'for /f %i in ("c:\templog") do @echo %~zi'
在 PHP 中,$_FILES 数组包含了有关上传文件的信息。其中,'f1' 是文件上传域的名称,'size' 是文件大小的信息。因此,$_FILES['f1']['size'] 表示获取文件上传域 'f1' 中的文件的大小。
例如,下面的代码演示了如何使用 $fsize 变量获取上传文件的大小:
在这里,$fsize 变量被赋值为上传文件的大小,以字节为单位。
注意:在使用 $_FILES 数组时,需要确保 PHP 的文件上传功能已经开启。否则,$_FILES 数组可能无法正常使用。
// 查看copy例子即可。
import javaawtBorderLayout;
import javaawtCursor;
import javaawtToolkit;
import javaawteventActionEvent;
import javaawteventActionListener;
import javabeansPropertyChangeEvent;
import javabeansPropertyChangeListener;
import javaioFile;
import javaioFileInputStream;
import javaioFileOutputStream;
import javaioInputStream;
import javaioOutputStream;
import javaxswingJButton;
import javaxswingJFrame;
import javaxswingJProgressBar;
import javaxswingSwingWorker;
public class Bar extends JFrame implements PropertyChangeListener
{
private static final long serialVersionUID = 1L;
private static final int MIN = 0;
private static final int MAX = 100;
private JProgressBar progressBar;
private JButton copy;
private Task task;
public Bar(String title)
{
setTitle(title);
setLayout(new BorderLayout());
progressBar = new JProgressBar(MIN, MAX);
progressBarsetValue(MIN);
progressBarsetStringPainted(true);
add(progressBar, BorderLayoutCENTER);
copy = new JButton("拷贝");
copyaddActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
start();
copysetEnabled(false);
}
});
add(copy, BorderLayoutEAST);
}
class Task extends SwingWorker<Void, Void>
{
@Override
public Void doInBackground()
{
setProgress(MIN);
File file = new File("ajpg");
long size = filelength();
byte[] bts = new byte[(int) (size / (Mathrandom() 50 + MAX - 50))];
int length = 0;
long cLength = 0;
try
{
InputStream stream = new FileInputStream(file);
OutputStream os = new FileOutputStream(new File("copy_aajpg"));
while((length = streamread(bts)) > 0)
{
oswrite(bts, 0, length);
cLength += length;
setProgress((int) (cLength MAX / size));
Threadsleep(30);
}
osflush();
osclose();
streamclose();
}
catch(Exception e)
{
eprintStackTrace();
}
return null;
}
@Override
public void done()
{
setTitle("拷贝完毕");
ToolkitgetDefaultToolkit()beep();
copysetEnabled(true);
setCursor(null);
}
}
public void propertyChange(PropertyChangeEvent evt)
{
if("progress" == evtgetPropertyName())
{
int progress = (Integer) evtgetNewValue();
progressBarsetValue(progress);
}
}
private void start()
{
task = new Task();
taskaddPropertyChangeListener(this);
taskexecute();
setTitle("正在拷贝");
setCursor(CursorgetPredefinedCursor(CursorWAIT_CURSOR));
}
private static void createAndShowGUI()
{
Bar frame = new Bar("Bar");
framesetAlwaysOnTop(true);
framesetSize(280, 60);
framesetResizable(false);
framesetLocationRelativeTo(null);
framesetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
framesetVisible(true);
}
public static void main(String[] args)
{
javaxswingSwingUtilitiesinvokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
}
}
File file = new File("文件路径");
Systemoutprintln(filelength());//输出的是文件的字节数
这样就可以获得文件的长度了
根据你写得要求:
一、头文件file1h中放了一个函数申明语句。源文件中放了函数。
二、根据头文件的include语句解析字符串获取头文件名,与头文件默认路径(常量)组成文件路径。同字符串的匹配,找到在语句在源文件的位置,并读取头文件内容替换到源文件对应位置。
三、合并后的内容,我是写入新的文件中,如你想要覆盖同文件,自行修改路径常量。
#include <stdioh>
#include <malloch>
#include <stringh>
#define NN "C:\\newFilec"//合并后的文件完整路径
#define HPH "C:\\"//头文件的默认路径
int getFSize(char Path);//获取文件字节数,参数文件路径
char readHFile(char hPath);//获取头文件内容
char checkCFile(char cPath,char hcon);// 检查源文件,找到对应includ语句,替换成对应头文件内容,并保存到新的文件中
int findStr(char str1,char str2);//在str1中查找str2,返回str2在str1中对应的首尾字符下标
int main()
{
char newFile=NULL;
newFile=checkCFile("C:\\file1c","#include\"file1h\"");
if(newFile)
printf("合并成功,合并后的文件内容为(路径:%s):\n%s\n",NN,newFile);
else
printf("合并失败,无匹配内容\n");
free(newFile);
return 0;
}
int getFSize(char Path)
{
int fSize=0;
if(!Path) return 0;
FILE fp=NULL;
fp=fopen(Path,"r");
if(!fp) return 0;
fseek(fp,0,SEEK_END);
fSize=ftell(fp);
fclose(fp);
return fSize;
}
char checkCFile(char cPath,char hcom)
{
int i=0,inx=NULL,fSize=0,hfnLen=0,hPLen=0,len=0;
char fcon=NULL,hcon=NULL,newfcon=NULL,hPath=NULL,pb=hcom,pe=pb,hfn=NULL;
if(!cPath || !hcom) return NULL;
FILE fp=NULL;
fp=fopen(cPath,"rb+");//这里不要要用r,避免下面计算大小误差
if(!fp) return 0;
if(!(fSize=getFSize(cPath))) return NULL;
printf("源文件大小:%d字节\n",fSize);
fcon=(char )malloc(sizeof(char)(fSize+1));
if(!fcon) return 0;
fcon[fSize]=0;
//fseek(fp,0,SEEK_SET);
if(fread(fcon,1,fSize,fp)!=fSize) return NULL;
printf("源文件内容为:\n%s\n",fcon);
if(!(inx=findStr(fcon,hcom))) return NULL;//将找到的匹配内容所在下标保存在inx指向地址
fclose(fp);
//----通过include语句获取头文件文件名---
while(pb!='"')pb++;
pb++,pe=pb;
while(pe!='"')pe++;
hfnLen=pe-pb;
hfn=(char )malloc(sizeof(char)(hfnLen+1));
if(!hfn)return NULL;
hfn[hfnLen]=0;
while(pb<pe)hfn[i++]=pb,pb++;
//----------------------------------------
hPLen=hfnLen+strlen(HPH);
hPath=(char )malloc(sizeof(char)(hPLen+1));
strcpy(hPath,HPH);
strcat(hPath,hfn);
hPath[hPLen]=0;
hcon=readHFile(hPath);//获得头文件对应内容
//----合并两个文件内容到新的数组,释放原数组---
len=fSize-strlen(hcom)+strlen(hcon);
newfcon=(char )malloc(sizeof(char)(len+1));
if(!newfcon) return NULL;
newfcon[0]=0;
fcon[inx[0]]=0;
pb=fcon;
strcpy(newfcon,pb);
pb=hcon;
strcat(newfcon,pb);
pb=&fcon[inx[1]+1];
strcat(newfcon,pb);
newfcon[len]=0;
free(fcon);
free(hcon);
free(hfn);
//----------------------------------------------
//-------------写入新文件-----------------------
fp=fopen(NN,"w");
if(!fp) return NULL;
fwrite(newfcon,1,strlen(newfcon),fp);
fclose(fp);
//---------------------------------------------
return newfcon;
}
char readHFile(char hPath)
{
int fSize=0;
char hcon=NULL;
FILE fp=NULL;
fp=fopen(hPath,"rb+");
if(!fp)return NULL;
if(!(fSize=getFSize(hPath)))return NULL;
printf("头文件大小:%d字节\n",fSize);
hcon=(char )malloc(sizeof(char)(fSize+1));
if(!hcon) return NULL;
hcon[fSize]=0;
if(fread(hcon,1,fSize,fp)!=fSize) return NULL;
printf("头文件内容为:\n%s\n",hcon);
fclose(fp);
return hcon;
}
int findStr(char str1,char str2)
{
char p0=NULL,p1=NULL;
int i,cnt=0,len1,len2;
static int inx[2];//str2首尾字符在str1中的对应下标
if(!str1 || !str2) return NULL;
inx[0]=inx[1]=0;
len1=strlen(str1);
len2=strlen(str2);
for(i=0;i<len1;i++)
{
cnt=0,p0=&str1[i],p1=p0+len2-1;
//每次搜索,先用p0,p1定位str2的在str1中的首尾位置,进行字符对比,再两指针向内收缩比较
if(p0!=str2[cnt] || p1!=str2[len2-1-cnt]) continue;
cnt++,p0++,p1--;
while(p0<=p1)
{
if(p0!=str2[cnt] || p1!=str2[len2-1-cnt]) break;//只要一对字符不匹配,跳过本次对比
cnt++,p0++,p1--;
}
if(p0>p1)//没有跳过说明本次完全匹配,记录首尾位置
{
inx[0]=i,inx[1]=i+len2-1;
return inx;
}
}
return NULL;
}
以上就是关于sql怎么样获取一个文件的大小,即这个文件所暂用字节数全部的内容,包括:sql怎么样获取一个文件的大小,即这个文件所暂用字节数、PHP中$fsize=$-FILES[‘f1’][‘size’]中size获取到的文件是什么、java读取文件时如何获得已读取的字节大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)