物含妙理总堪寻分享 http://blog.sciencenet.cn/u/hdu016

博文

过长文件名的测试

已有 3883 次阅读 2012-6-16 11:59 |个人分类:计算机知识|系统分类:科普集锦| 测试, 文件名过长

最近从移动硬盘拷贝一些文件到新的计算机上,经常出现了“文件夹或文件名过长”而无法拷贝的情况,现写了一个小程序来进行测试文件名。代码如下,可在VC或者C中编译运行,注意,要测试的文件夹(或磁盘)不能与该文件名在同一个文件夹下。

另外,下面的代码还可以进行修改,

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <dos.h>
#include <windows.h>

void main()
{
char linechar[1000];
char filepath[1000];
char doscom[1000]="cmd.exe /c dir /b/s";
char filename[50]="fileresults.txt";
    FILE * fileopen;
int i,count;
long oldsize=0,newsize=1;
int maxchars=0;

printf("n 请输入要检查的盘符或者目录:");
scanf("%s",&filepath);

strcat(doscom," "); //增加一个空格。
strcat(doscom,filepath);
strcat(doscom," >");
strcat(doscom,filename);
puts(doscom);

WinExec(doscom,SW_HIDE);
// WinExec("cmd.exe /c dir /b/s H: >results.txt",SW_HIDE);
printf("n 现在进行分析:n");

/*
if( (fileopen  = fopen(filename, "r" )) == NULL )
printf( "The file 'filename.txt' was not openedn" );
else
printf( " The file 'filename.txt' was openedn" );// control list 0.txt.
*/
//在读取文件之前要事先判断文件是否已经写入完成。

while(newsize-oldsize)
{
//打开文件后判断文件大小是否仍然在增加即可。
fileopen  = fopen(filename, "r" );
fseek( fileopen, 0L, SEEK_END );
        oldsize = ftell( fileopen );

//延时2秒后再看看。
Sleep(2000);

fseek( fileopen, 0L, SEEK_END );
        newsize = ftell( fileopen );

printf("n oldsize=%ld,newsize=%ld",oldsize,newsize);
fclose(fileopen);
}

///开始读取已经写好的文件。
if( (fileopen  = fopen(filename, "r" )) == NULL )
printf( "The file 'filename.txt' was not openedn" );
else
printf( " The file 'filename.txt' was openedn" );// control list 0.txt.

i=0;
while (!feof(fileopen))
{
i++;
fgets(linechar, sizeof(linechar), fileopen);//每行最多读取500个字符。
count=0;
for(count=0;linechar[count]!='n';count++)
;
if(count>=300)
{
printf("n 第 %d 行字符数超过300,为%d!n",i,count+1);
if(maxchars<=count)
{
maxchars=count;
}
}
}
//
printf("n 这个磁盘中文件路径的最大值为:%d",maxchars);
}



https://blog.sciencenet.cn/blog-72645-582716.html

上一篇:感受行政人员的服务!
下一篇:预祝中国“女神”能够上天入地!
收藏 IP: 221.12.173.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-24 15:34

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部