一键打开文件,如何读出内容

1. 问题

try
{
fs = new StreamReader(new FileStream(path, FileMode.Open,
FileAccess.Read),
Encoding.GetEncoding(“gb2312”));//符合规律读取文件,假若被excel程序独占的话,此时会抛出尤其
}
catch(Exception e)
{
//抛出尤其后,那么就可以拷贝此文件到暂时文件夹下生成的三个随便文件中,然后读取此一时半刻文件即可
一键打开文件,如何读出内容。string tempFile = Path.GetTempPath() + Path.GetRandomFileName();
File.Copy(path, tempFile);
fs = new StreamReader(new FileStream(tempFile, FileMode.Open,
FileAccess.Read), Encoding.GetEncoding(“gb2312”));
}

我们在工作中会使用种种文件,为了分类管理,我们建立了重重文书夹,在开拓相应文件的时候,须要各样打开文件路径找到文件,然后打开,下边介绍一个一键就足以打开文件的好法子。想要一键打开,大家先必要三个文件的路线。在win7系统中,文件的路子已经不复用古板的主意来代表路径,那么怎么着取得文件的途径呢?上面介绍一个办法。

来源:IT部落窝  作者:IT部落窝

当在console中调用API
ShellExecuteEx打开”test.iqy”文件时,发现excel会hang住,console退出后excel才会响应,但一贯双击”test.iqy”是不曾难题的,有意思的是以此地方只有在xp发生,在win7上尚未那些题材。

一 、打开文件夹,找到文件,大家看看的文书路径是如此的,并非用反斜杠字符来代表的。

内容提要:本文介绍excel运维时自动打开文件的二种方式。

 

图片 1

我们天天使用EXCEL软件,总有一多个常用文件,其实大家得以开展连锁设置,让excel运维时,自动为大家开辟必要的文档,而不必我们去手动操作。

2. 复发步骤

贰 、用鼠标左键点击需要设置的文书,按下shift,然后右键,选用复制为路径。注意早晚要按下shift键。

第③种excel运行时自动打开文件的主意:

再次出现环境:XP sp3 / Office 二零零六(其他office版本应该也得以,没有测试)

图片 2

先是,找到需求随EXCEL运转的XLS文件,右击后采取“创造神速格局”,在此时此刻文件夹下创造XLS文件的快速格局。然后右击该神速格局,采用“剪切”。

③ 、依据这几个艺术,大家可以收获3个门路列表,粘贴在excel里。当然你也得以飞快接纳,批量复制:先用鼠标左键点击第二个公文,然后按下shift点击最终1个,那样就全数入选文件,按住shift不松劲,右键接纳复制为路径,再粘贴在Excel里,那是批量复制的艺术。

第二,打开C:Program Files\Microsoft
Office\Office11\XLStart文件夹(C代表系统中OFFICE软件安装的分区盘符,暗中认可为C盘),将刚刚创设的XLS文件神速格局“粘贴”到XLStart文件夹下。

1> 解压iqy_test.zip

图片 3

咱俩再打开运转EXCEL软件,刚才创设快捷格局的XLS文件也随excel运行自动打开了。

2> 运行http_server.py(需先安装python)

4\若果想批量拿走文件夹中的文件,还有3个函数可以已毕,就是Excel宏表函数FILES,这一个函数只可以在概念名称当中使用。关于那些函数的用法,可以在百度找到,再此不再赘述。我写了一个数组公式,可以直接领取文件名,并屏蔽错误值。具体看演示。

技巧唤起:(1)如果你要同时打开多个XLS文件,只需将欲打开的XLS文件的连忙格局都粘贴到XLStart文件夹下,就足以同时打开多少个XLS文件。

3> 执行”shell_execute.exe test.iqy”

图片 4

(2)若是把XLS文件一向剪切到此处,也足以高达文件自动随EXCEL运行而开辟的目标。但倘若系统盘出现难题文件就不肯定能找到了,所以大家把飞速方式剪切过来就不会出现那样的标题。

shell_execute.exe的主要code:

⑤ 、路径提取到工作表今后,大家用七个函数的嵌套,来贯彻一键打开文件,其中HYPE途锐LINK函数用来制作链接,mid函数提取文件名,作为HYPE凯雷德LINK函数的第一个参数。

第两种excel运维时自动打开文件的措施:

bool shell_execute_file(wstring file_path)
{
    SHELLEXECUTEINFOW shell_exec_info = { 0 };
    shell_exec_info.cbSize = sizeof(SHELLEXECUTEINFOW);
    shell_exec_info.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI;
    shell_exec_info.hwnd = NULL;
    shell_exec_info.lpVerb = NULL;
    shell_exec_info.lpFile = file_path.c_str();
    shell_exec_info.lpParameters = NULL;
    shell_exec_info.lpDirectory = NULL;
    shell_exec_info.nShow = SW_SHOW;
    shell_exec_info.hInstApp = NULL;
    bool ret = ShellExecuteExW(&shell_exec_info);
    printf("process handle is %p\n", shell_exec_info.hProcess);

    return ret;
}

图片 5

率先,将急需随excel运维时自动打开的文本存放在3个文件夹。

 

安分守己这样的点子,咱们可以方便急忙的治本电脑中的文档,只要打开贰个Excel工作簿,就能够一键打开,从而增强工作效能。

其次,单击菜单“工具/选项”,填写“常规”选项卡中的“运维时打开此项中的全部文件”。

3. 缘由分析

我们再度运转EXCEL,文件就随运转自动打开了。

3.1 excel hang在哪里?

有了上述的措施,QQ群中一位网友的难点就好化解了。

3.1.1 用windbg附加到excel上,输入如下命令查看主线程hang住的地点

网友问:在运行Excel时,发现两次三番自动打开多少个文本并造成运维速度慢了好多。请问怎么着才能化解此题材?