如何生成一个 WinCE 下文件全路径大于 MAX_PATH(260) 字节的文件路径?

大家都知道,在 Windows 系统中文件名的路径最大值是 MAX_PATH。例如:
Windows XP 系统,对文件名的长度进行测试: 
(1) 在分区 E:\ 的根目录新建一个文件,其文件名最大长度为: 255。---全路径长度>>> 258
(2) 在分区 E:\ 子目录 Program Files\ 中新建一个文件,其文件名的最大长度为: 242。 ---全路径长度>>>259
在 WinCE 系统下,也有一定的限制。
另外,如果试图将在 E:\ 根目录新建的最大文件名长度的文件,是无法复制到子目录中的。复制时提示: 指定的文件名无效或太长。

如何会产生一个 WinCE 下文件全路径大于 MAX_PATH(260) 字节的文件路径呢?
其实这个问题很简单,想来大家都知道 USB 或 SD 设备在 Windows XP 等系统与在 WinCE 系统中被识别后的根目录是不会的。
在 Windows XP等桌面系统中,一般是根目录,如:F:\
在 Windows CE 系统中,SD 卡一般是如下的目录:\Storage Card 或 \Storage Card 2 或其它; USB 一般是如:\Hard Disk 的目录。

利用 Windows XP等系统与 WinCE 系统的不同,来完成生成一个 WinCE 下文件全路径大于 MAX_PATH(260) 字节的文件路径。
将在 Windows XP 系统的某个根目录中生成的最长文件名,复制到 SD/USB。然后将此 SD/USB 插入 WinCE 系统,此时刚才复制的长文件名的文件,其它文件的全路径将会大于 MAX_PATH(260)。

出现这种情况,可能会导致部分使用 MAX_PATH 做为文件名全路径最大值的程序产生越界访问的情况出现,导致程序出现异常。

时间: 2024-10-10 20:01:03

如何生成一个 WinCE 下文件全路径大于 MAX_PATH(260) 字节的文件路径?的相关文章

Windows - 你可以在Windows中做出一个全路径文件名(Fully Qualified File Name)长度超出MAX_PATH=260字节的文件

在任意一个目录下新建一个文件夹. 在该新建文件夹下创建任意一个文件:重命名该文件,使文件名长度不能再长为止. 重命名该新建文件夹,使该文件夹的名字长度更长. 综上,你就在Windows中做出了一个全路径文件名长度超出MAX_PATH=260字节的文件. Windows - 你可以在Windows中做出一个全路径文件名(Fully Qualified File Name)长度超出MAX_PATH=260字节的文件

CRC校验程序3:通过窗体程序打开txt文件获取数据源,进行逐字节CRC校验

在上一篇中,生成输出的CRC.exe将要成为这个窗体应用的内置模块. 新建一个windows窗体应用程序,叫做CRClick.将应用程序CRC.exe从Console应用程序中找到,复制到CRClick文件夹的Debuge文件夹下.同时还有测试用的Test.txt. 打开窗体设计页面,插入两个Textbox和一个按钮,长度Textbox用来显示被校验的文件的绝对路径,短Textbox显示最终校验码.按钮激发选择文件的窗口.设计如下: 对于按钮的触发事件,我们生成一个OpenFileDialog控

python基础:匹配指定目录下符合规则的文件,打印文件全路径

# -*- coding:utf-8 -*- #遍历目录树 import os,fnmatch def all_files(root, patterns='*', single_level=False, yield_folder=False): # 将模式从字符串中取出放入列表中 patterns = patterns.split(';') for path, subdirs, files in os.walk(root): if yield_folder: files.extend(subdi

ie下获取上传文件全路径

ie下获取上传文件全路径,3.5之后的火狐是没法获取上传文件全路径的 1 /*获取上传文件路径*/ 2 function getFilePath(obj) { 3 var form = $(this).parents("form"); 4 form.validate(); 5 var fileObj = obj; 6 if (fileObj) { 7 if (window.navigator.userAgent.indexOf("MSIE") >= 1) {

C# 选择文件、选择文件夹、打开文件(或者文件夹) 路径中获取文件全路径、目录、扩展名、文件名称 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名!!

https://www.cnblogs.com/zhlziliaoku/p/5241097.html 1.选择文件用OpenDialog OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = true;//该值确定是否可以选择多个文件 dialog.Title = "请选择文件夹"; dialog.Filter = "所有文件(*.*)|*.*"; if (dialog.ShowDial

HDFS 读取、写入、遍历目录获取文件全路径

1.从HDFS中读取数据 Configuration conf = getConf(); Path path = new Path(pathstr); FileSystem fs = FileSystem.get(conf); FSDataInputStream fsin= fs.open(path ); BufferedReader br =null; String line ; try{ br = new BufferedReader(new InputStreamReader(fsin))

前两天有人问怎么取得一个目录下的文件,下面就是例子

<%@ Language=VBScript %> <% '================================================================ '函数名称:FileList '函数功能:列出目录下所有文件 '主要参数说明: '1--FolderUrl 虚拟路径 不可为空 '2----FileExName 文件扩展名 '函数返回值:收文记录 '====================================================

windows 10(64位)下实现vs20120C++调用matlab r2014a编写的m文件生成的.dll,.lib,.h文件

如题. 环境:windows10 64位,vs 2010,matlab r2014a,配置成功,生成.dll,.h,.lib文件成功. 步骤一:matlab动态链接库文件编译生成 1)编写示例文件add.m function c = add(a, b); c = a + b; end; 2)编译打包 进入matlab主界面,在控制台输入deploytool命令,调用打包程序,选择"Library Compiler": 3)进入库文件编译程序界面,根据需要勾选C++ Shared Lib

Tomcat catalina-deamon.out 日志切割 每天生成一个文件

Tomcat 使用 jsvc 以守护进程的方式启动(daemon.sh ).这样tomcat自身将会生成另外一个日志文件(catalina-daemon.out),而不是之前的catalina.out,而且catalina-daemon.out日志不会自动切割,会越来越大. 以前遇到过一个问题,就是网站突然访问空白,排查到最后发现是当前进行了网站打包备份操作,有一个超过2GB的压缩包.删掉后立马页面访问正常.具体原因还不清楚. 同时从运维角度和日志分析角度思考,日志文件最好做切割处理,并日志文件