本文的目的是介绍windows–event.getFile().getFileName()返回带有PrimeFaces3.5的JSF2.0中完整路径的文件名的详细情况,我们将通过专业的研究、有关数据的
本文的目的是介绍windows – event.getFile().getFileName()返回带有PrimeFaces 3.5的JSF2.0中完整路径的文件名的详细情况,我们将通过专业的研究、有关数据的分析等多种方式,同时也不会遗漏关于ASP.net C#:如何使用File.ReadLines(fileName).GetEnumerator()逐行读取20到200 GB的文件?、asp.net FileUpload.FileName返回完整路径,即ie,当不需要时、c – QFileDialog :: getSaveFileName和默认的selectedFilter、c – 是否有一个替代Windows FindFirstFile / FindNextFile API不搜索短文件名?的知识。
本文目录一览:- windows – event.getFile().getFileName()返回带有PrimeFaces 3.5的JSF2.0中完整路径的文件名
- ASP.net C#:如何使用File.ReadLines(fileName).GetEnumerator()逐行读取20到200 GB的文件?
- asp.net FileUpload.FileName返回完整路径,即ie,当不需要时
- c – QFileDialog :: getSaveFileName和默认的selectedFilter
- c – 是否有一个替代Windows FindFirstFile / FindNextFile API不搜索短文件名?
windows – event.getFile().getFileName()返回带有PrimeFaces 3.5的JSF2.0中完整路径的文件名
为了克服这个问题,我修改了程序,有点像以下方式 –
String fileName = event.getFile().getFileName(); fileName = fileName.substring(fileName.lastIndexOf("\\"));
但它不稳健可靠.有什么建议吗?
解决方法
FilenameUtils#getName()
用于确切目的.
String filename = FilenameUtils.getName(event.getFile().getFileName());
也可以看看:
> Commons FileUpload FAQ on the subject
> How to save uploaded file in JSF
ASP.net C#:如何使用File.ReadLines(fileName).GetEnumerator()逐行读取20到200 GB的文件?
public static int SplitFile(string fileName,string tmpFolder,List<string> queue,int splitSize = 100000) { int chunk = 0; if (!Directory.Exists(tmpFolder)) Directory.CreateDirectory(tmpFolder); using (var lineIterator = File.ReadLines(fileName).GetEnumerator()) { bool stillGoing = true; for (chunk = 0; stillGoing; chunk++) { stillGoing = WriteChunk(lineIterator,splitSize,chunk,tmpFolder,queue); } } return chunk; } private static bool WriteChunk(IEnumerator<string> lineIterator,int splitSize,int chunk,List<string> queue) { try { //int tmpChunkSize = 1000; //int tmpChunkInc = 0; string splitFile = Path.Combine(tmpFolder,"file" + chunk + ".txt"); using (var writer = File.CreateText(splitFile)) { queue.Add(splitFile); for (int i = 0; i < splitSize; i++) { if (!lineIterator.MoveNext()) { return false; } writer.WriteLine(lineIterator.Current); } } return true; } catch (Exception) { throw; } }
它创建了大约36个文本文件(大约800 MB),但是在lineIterator.MoveNext()创建第37个文件时开始抛出“Out of memory exception”.
而lineIterator.Current显示调试器中的值.
解决方法
您可以看到一个简单的示例here.使用ReadBytes检查最后一行后,并以您阅读的特定行数写入流程文件.不要写你读的每一行,也不要把所有的数据保存在内存中.
剩下的就在你手中.
也许真的是那个When does File.ReadLines free resources
IEnumerable
doesn’t inherit from Idisposable because typically,the class that implements it only gives you the promise of being enumerable,it hasn’t actually done anything yet that warrants disposal.
asp.net FileUpload.FileName返回完整路径,即ie,当不需要时
解决方法
var fileName = Path.GetFileName(somePath);
和HttpUtility静态类来编码它.
var encoded = HttpUtility.HtmlEncode(fileName);
c – QFileDialog :: getSaveFileName和默认的selectedFilter
我有getSaveFileName和一些过滤器,我想在用户打开“保存”对话框时选择其中一个. Qt文档说明如下:
The default filter can be chosen by setting selectedFilter to the desired value.
我尝试以下变体:
QString selFilter="All files (*.*)";
QFileDialog::getSaveFileName(this,"Save file",QDir::currentPath(),"Text files (*.txt);;All files (*.*)",&selFilter);
但是当对话框出现时,会选择“文本文件”过滤器(通常情况下,列表中的第一个过滤器).我也尝试了以下所有方法:
selFilter="All files";
selFilter="All files (*.*)\n";
selFilter="All files (*.*);;";
selFilter="All files (*.*)\0";
和这些变体的不同混合物.我的代码中的过滤器列表的格式是根据文档(来自Qt docs的示例行)完成的:
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
请注意,输出到selFilter变量的工作正常:用户按OK后,selFilter变量包含用户选择的过滤器.
平台:Linux(OpenSUSE 12.1),Qt 4.7.4,gcc 4.6.2.
那么如何设置默认过滤器?!
#include
通常这种行为是内存损坏的标志.但是,我已经用valgrind检查过了(我有Qt 4.8.1)并且FontConfig只有一些误报.
c – 是否有一个替代Windows FindFirstFile / FindNextFile API不搜索短文件名?
我遇到的问题是,如果我正在寻找3个字母的扩展名,并且一个文件的扩展名以3个字母的扩展名开头,那么我的搜索将被抓住,即使扩展名包含更多的字符首先3.例如,如果我的文件名为somelongname.xmlaaaa,这将通过搜索“* .xml”获取.该文件的短名称为somelo〜1.xml,与我的通配符字符串相匹配.
我可以做自己的通配符来解决这个问题,但是可能Windows API能够比我更有效地执行此操作,而我的代码会更简单.据我所知,没有办法强制这些功能忽略短名称.有没有API Windows公开的这个功能?
解决方法
typedef enum _FINDEX_INFO_LEVELS { FindExInfoStandard,FindExInfoBasic,FindExInfoMaxInfoLevel } FINDEX_INFO_LEVELS;
FindExInfoBasic
The FindFirstFileEx function does not query the short file name,improving overall enumeration speed. The data is returned in a WIN32_FIND_DATA structure,and the cAlternateFileName member is always a NULL string.
然而:
Windows Server 2008,Windows Vista,Windows Server 2003,and Windows XP: This value is not supported until Windows Server 2008 R2 and Windows 7.
今天关于windows – event.getFile().getFileName()返回带有PrimeFaces 3.5的JSF2.0中完整路径的文件名的介绍到此结束,谢谢您的阅读,有关ASP.net C#:如何使用File.ReadLines(fileName).GetEnumerator()逐行读取20到200 GB的文件?、asp.net FileUpload.FileName返回完整路径,即ie,当不需要时、c – QFileDialog :: getSaveFileName和默认的selectedFilter、c – 是否有一个替代Windows FindFirstFile / FindNextFile API不搜索短文件名?等更多相关知识的信息可以在本站进行查询。
本文标签: