sql怎么样获取一个文件的大小,即这个文件所暂用字节数

sql怎么样获取一个文件的大小,即这个文件所暂用字节数,第1张

是在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读取文件时如何获得已读取的字节大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9282411.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存