问题标签 [long-filenames]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
662 浏览

windows - 如何解决 Windows 目录的“设计”问题?

dir /b 生成一个不错的仅文件列表

dir /x 生成详细列表(日期、时间、大小、长名、短名)

但是,如果您将两者结合起来(即 dir /b /x),则 /x 开关将被忽略。页面的此行为是设计使然。

因此,如果您要求一个仅包含文件短名称的简单列表,Redmond (Microsoft) 表示将其提供给您是违反天规的。

怎么能绕过这个“设计”问题?

提前谢谢了

ps这是为了帮助我实现这个问题中解释的东西。五个好心的朋友发布了我非常感谢的答案,但没有一个答案帮助我得到我想要的。

0 投票
4 回答
7654 浏览

c# - C#:使用 Directory.GetFiles 获取固定长度的文件

目录“C:\temp”有两个文件,分别名为“GZ96A7005.tif”和“GZ96A7005001.tif”。它们具有不同的长度和相同的扩展。现在我运行以下代码:

“resultFileNames”返回两个项目“c:\temp\GZ96A7005.tif”和“c:\temp\GZ96A7005001.tif”。但是 Window Search 可以正常工作。这就是为什么以及如何得到我想要的?

替代文字

0 投票
1 回答
671 浏览

r - 将非 8dot3 目录路径的短名称扩展为长名称

Ron 中Windowstempdir()返回包含 的短名称的路径non 8dot3 directory names

如何将它们扩展为长名称?

使用纯R代码的答案是有利的,但使用众所周知的 shell 命令的答案system()可以作为备份。

0 投票
15 回答
870029 浏览

c# - 如何将字符串添加到 string[] 数组?没有 .Add 功能

我想将其转换FI.Name为字符串,然后将其添加到我的数组中。我怎样才能做到这一点?

0 投票
5 回答
6554 浏览

windows - 如何从 Perl 创建然后使用长 Windows 路径?

我有一个构建过程的一部分,它在 Windows 中创建了一个非常长的路径。这不是我的错。有好几个目录,而且没有一个目录名异常长;它们足够长且数量足以使其结束MAX_PATH(260个字符)。我没有在这些名称中使用除 ASCII 以外的任何东西。

最大的问题是,在目标期间, Module::Build的内部深处发生了爆炸dist,尽管我认为构建系统并不重要,因为它们会创建相同的目录。

创建这些过长目录之一File::Path失败:

同样,一旦绝对路径超过,手动构建每个目录级别都会失败MAX_PATH

这不是新的,也不是 Perl 的错,微软在Naming Files, Paths, and Namespaces中记录了它。他们的修复建议\\?\在任何路径前添加访问 Unicode 文件名 API 的路径。但是,这似乎不是 Perl 脚本的完整解决方案,因为它仍然失败:

这可能是因为make_path拉开它的参数,然后一次通过一个级别的目录,所以\\?\只适用于顶级,即在MAX_PATH.

我向 ActiveState挖了一个错误报告,表明我需要修复一些其他内容才能获取 Unicode 文件名,Jan Dubois 在Re: "long" filenames on Windows 2K/XP中提供了更多详细信息,尽管我是不确定它是否适用(并且非常旧)。perlrun提到这个用途是-C开关的工作,但显然那部分被放弃了。perl RT 队列有一个更新的错误60888:Win32: support full unicode in filenames (use Wide-system calls)

Miyagawa注意到一些 Unicode 文件名问题Win32API::File,但没有特别提到长路径。但是,Win32API::File CPAN 论坛条目似乎只表示恐惧,这会导致愤怒,这会导致仇恨,等等。Perlmonks帖子中有一个示例How to stat a file with a Unicode (UTF16-LE) filename in Windows? . 似乎这Win32::CreateDirectory就是答案,下次我在 Windows 机器旁边时会尝试这样做。

然后,假设我可以创建长路径路径。现在我必须教 Module::Build,也许还有其他东西来处理它。Win32::GetANSIPathName()如果按照锡上所说的那样使用monkeypatches,这可能会立即变得容易。

0 投票
7 回答
4096 浏览

c# - 如何在 SaveFileDialog 的默认 FileName 中设置长字符串(> 260)?

我正在使用 SaveFileDialog 并且必须在 FileName 中设置长字符串(longFileName)。String longFileName 在运行时是已知的。

如果我设置

然后我明白了System.IO.PathTooLongException

我该怎么做?

0 投票
2 回答
1454 浏览

java - 如何在 Java 中解开 Windows 文件名?

从 Java 中,我将一个可执行文件提取到使用 File.createTempFile() 指定的位置。当我尝试运行我的可执行文件时,我的程序在尝试读取第一行输出时挂起。

我发现如果我尝试从另一个程序运行相同的提取可执行文件,如果我将目录指定为 C:\Documents and Settings\username\Local Settings\Temp\prog.exe,它就可以工作。但是,如果我将目录指定为 C:\DOCUME~1\USERNA~1\LOCALS~1\Temp\prog.exe 我就会挂起。

有没有办法在我的程序中解开波浪号文件名,以便我可以指定一个可以使用的目录名?

(而且由于我总是喜欢解决语言和 API 设计问题,有什么理由为什么 Java File.createTempFile() 和 java.io.tmpdir 必须评估损坏的文件名?)

0 投票
3 回答
7900 浏览

c++ - C++ WinAPI:处理长文件路径/名称

我正在考虑在我的 Windows 应用程序中处理更长的文件路径。

目前,我有一个文本框(编辑框),用户可以在其中键入绝对文件路径。然后,我使用 , 将输入的文件路径读GetWindowText入一个声明如下的字符串:TCHAR FilePath[MAX_PATH];

显然,在这里我依赖于将MAX_PATH我限制为 260 个字符的常量。因此,要处理更长的文件/路径名称,我可以像这样扩展我的 TCHAR 数组TCHAR FilePath[32767];

或者,还有更好的方法?我可以使用可变长度数组吗?(TCHAR FilePath[];这在 C++ 中甚至可能吗? - 对不起,我对此很陌生)。

提前谢谢你!


这是我上面提到的整个代码片段:

0 投票
1 回答
378 浏览

java-me - j2me 应用程序的图像文件的最大长度?

我正在 j2me 中构建一个应用程序,我将通过无线连接接收图像。我想知道保存文件名时文件名的最大长度是多少。我的主要动机是通过文件名存储有关图像的一些信息。

0 投票
1 回答
1447 浏览

windows - Windows:创建不存在驱动器的快捷方式不允许长文件夹和文件名

我正在尝试使用 PowerShell 创建一个以映射驱动器上的文件为目标的快捷方式。不过,此脚本将在驱动器实际映射之前运行。这是代码:

因为“X”驱动器还不存在,所以快捷方式的“目标”字段最终会这样说:

Windows XP:X:\Folder_W\This_is_.txt

Windows 7:X:\Folder_With_Spaces\This_is_a_long_filename.txt

两种操作系统都会删除周围的双引号并将空格转换为下划线。Windows XP 还将文件夹和文件名截断为 8 个字符。

有没有办法解决这个问题?