none
用VC++编写的ActiveX控件,在WIN7下,保存了一个文件到磁盘上,结果用资源管理器到这个目录下看,却没有!? RRS feed

  • 问题

  • 我之前用VS2008编写了一个MFC ActiveX控件,主要用在IE里面。这个控件的其中一个功能就是从服务器上下载文件到本地磁盘上。

    在XP系统下一直没有问题的。最近在WIN7下运行,下载文件的功能正常,但不知道为何下载完成之后,打开资源管理器去看,却找不到那个下载好的文件。但是从这个控件弹出的文件选择对话框里面有可以看到这个文件,真是莫名其妙。好像这个文件只有控件本身能看到一样。

    我的控件是用WinInet API从服务器下载文件的,保存文件用的是CreateFile和WriteFile这两个API,不知道在WIN7下是不是和XP有不同?要修改哪些地方?


    da jia hao!
    2011年3月28日 13:57

答案

  • 32位程序和64位程序有不同的文件系统视图,用procmon看看文件保存的位置

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2011年4月1日 16:01
    版主
  • 做一个小程序看这个文件能否通过OpenFile打开。如果可以,可能是被隐藏了。或者你的登录用户没有访问权限
    麻烦把正确答案设为解答。
    2011年3月29日 7:30
    版主
  •  

    Hi liubin,

    保存文件用的是CreateFileWriteFile这两个API

    我发现CreateFile函数中有一个参数dwDesiredAccess [in]是设置权限的,我怀疑您的问题可能与这个有关,很可能因为这个问题导致您编写activex控件的当前用户下可以访问,其他用户就不行。能否把您createfile的具体实现代码给我们看下。

    具体关于CreateFile的信息请看:http://msdn.microsoft.com/en-us/library/aa363858(v=VS.85).aspx

     

    谢谢,

    Lucy


    Lucy Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月30日 8:01
    版主

全部回复

  • 做一个小程序看这个文件能否通过OpenFile打开。如果可以,可能是被隐藏了。或者你的登录用户没有访问权限
    麻烦把正确答案设为解答。
    2011年3月29日 7:30
    版主
  • 做一个小程序看这个文件能否通过OpenFile打开。如果可以,可能是被隐藏了。或者你的登录用户没有访问权限
    麻烦把正确答案设为解答。

     

    这个文件一定是对我当前登录到WINDOWS的用户隐藏了。问题是我应该如何写程序才可以避免这个问题?现在这个文件就只有当初保存它下来的那个程序自己能看见。

    (即:通过这个程序的OpenFile对话框能看见这个文件,而其他任何程序的OpenFile对话框都看不到这个文件)


    da jia hao!
    2011年3月30日 4:02
  •  

    Hi liubin,

    保存文件用的是CreateFileWriteFile这两个API

    我发现CreateFile函数中有一个参数dwDesiredAccess [in]是设置权限的,我怀疑您的问题可能与这个有关,很可能因为这个问题导致您编写activex控件的当前用户下可以访问,其他用户就不行。能否把您createfile的具体实现代码给我们看下。

    具体关于CreateFile的信息请看:http://msdn.microsoft.com/en-us/library/aa363858(v=VS.85).aspx

     

    谢谢,

    Lucy


    Lucy Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月30日 8:01
    版主
  •  

    Hi liubin,

    保存文件用的是CreateFileWriteFile这两个API

    我发现CreateFile函数中有一个参数dwDesiredAccess [in]是设置权限的,我怀疑您的问题可能与这个有关,很可能因为这个问题导致您编写activex控件的当前用户下可以访问,其他用户就不行。能否把您createfile的具体实现代码给我们看下。

    具体关于CreateFile的信息请看:http://msdn.microsoft.com/en-us/library/aa363858(v=VS.85).aspx

     

    谢谢,

    Lucy


    Lucy Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    代码:

    创建文件:

     hFile=::CreateFile( pLocalPath, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );

    读取Internet的数据:
     rrr = InternetReadFile( hRequest, buff, 4096, &dwDownloaded );//“hRequest”是Internet的句柄

    写入文件:

    WriteFile( hFile, buff, dwSize, &dwDownloaded, NULL );

    最后是关闭句柄:

     CloseHandle( hFile );


    da jia hao!
    2011年3月30日 10:31
  • Hi liubin

    我看了您提供的代码,它是正确的,这个问题应该不是由它们引起的而是由其他部分引起。

    如果您能提供一些步骤或代码让我们来重现您这个问题的话,您将会得到更好的解答。

    谢谢您的理解!

     

    Lucy


    Lucy Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年4月1日 8:32
    版主
  • 32位程序和64位程序有不同的文件系统视图,用procmon看看文件保存的位置

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2011年4月1日 16:01
    版主

  • 32位程序和64位程序有不同的文件系统视图,用procmon看看文件保存的位置

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP

     

    我研究过了,发现如果我启动IE的时候选择“以管理员身份运行”的话,就不会出现这个问题,保存的文件是可以被其他程序看见的。请问这是为何呢?


    da jia hao!
    2011年4月28日 3:33