精华内容
下载资源
问答
  • 在windows 系统下常常可以看到文件的打开,另存为,文件夹打开等对话框,本次将会整理这些方法。常见的打开文件对话框方法有两种:CFileDialog和OPENFILENAMEA,前者文件对话框类,后者一个结构体;前者需要加入...

         在windows 系统下常常可以看到文件的打开,另存为,文件夹打开等对话框,本次将会整理这些方法。常见的打开文件对话框方法有两种:CFileDialog和OPENFILENAMEA,前者是文件对话框类,后者是一个结构体;前者需要加入#include <afxdlgs.h>头文件,后者需要引入头文件#include “commdlg.h”,当然这指的是C++控制台中的调用,MFC中则可以忽略。

    1.CFileDialog类

    BOOL bOpenFileDialog,(

    LPCTSTR lpszDefExt = NULL,

    LPCTSTR lpszFileName = NULL,

    DWORD dwFlags = OFN_HIDEREADONLY |OFN_OVERWRITEPROMPT,

    LPCTSTR lpszFilter = NULL,

    CWnd* pParentWnd = NULL

    );

    bOpenFileDialog

    TRUE则显示打开文件对话框,FALSE则显示保存文件对话框。 
      lpszDefExt

    指定默认的文件扩展名。 
      lpszFileName

    指定默认的文件名。 
      dwFlags

    指明一些特定风格。 
      lpszFilter

    是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。

    pParentWnd

    为父窗口指针。

    (1)打开文件对话框

    egg:

       TCHAR szFilter[] = _T("文本文件(*.txt)|*.txt|Word文件(*.doc)|*.doc|所有文件(*.*)|*.*||");
        // 构造打开文件对话框   
        CFileDialog fileDlg(TRUE, _T("txt"), NULL, 0, szFilter, this);
        CString strFilePath;

        // 显示打开文件对话框   
        if (IDOK == fileDlg.DoModal())
        {
            // 如果点击了文件对话框上的“打开”按钮,则将选择的文件路径显示到编辑框里   
            strFilePath = fileDlg.GetPathName();
            SetDlgItemText(IDC_EDIT_PATH, strFilePath);
        }

    (2)另存为对话框

    egg:

       TCHAR szFilter[] = _T("文本文件(*.txt)|*.txt|Word文件(*.doc)|*.doc|所有文件(*.*)|*.*||");
        // 构造保存文件对话框   
        CFileDialog fileDlg(FALSE, _T("doc"), _T("test"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, this);
        CString strFilePath;

        // 显示保存文件对话框   
        if (IDOK == fileDlg.DoModal())
        {
            // 如果点击了文件对话框上的“保存”按钮,则将选择的文件路径显示到编辑框里   
            strFilePath = fileDlg.GetPathName();
            SetDlgItemText(IDC_EDIT_SAVE, strFilePath);
        }

    2.OPENFILENAMEA结构体

    OPENFILENAME结构包含了GetOpenFileNameGetSaveFileName函数用来初始化打开或另存为对话框的信息。在用户关闭对话框后,系统返回关于用户的选择信息到这个结构中。

    结构体原型:

    typedef struct tagOFN {

    DWORD lStructSize;

    HWND hwndOwner;

    HINSTANCE hInstance;

    LPCTSTR lpstrFilter;

    LPTSTR lpstrCustomFilter;

    DWORD nMaxCustFilter;

    DWORD nFilterIndex;

    LPTSTR lpstrFile;

    DWORD nMaxFile;

    LPTSTR lpstrFileTitle;

    DWORD nMaxFileTitle;

    LPCTSTR lpstrInitialDir;

    LPCTSTR lpstrTitle;

    DWORD Flags;

    WORD nFileOffset;

    WORD nFileExtension;

    LPCTSTR lpstrDefExt;

    LPARAM lCustData;

    LPOFNHOOKPROC lpfnHook;

    LPCTSTR lpTemplateName;

    #if (_WIN32_WINNT >= 0x0500)

    void * pvReserved;

    DWORD dwReserved;

    DWORD FlagsEx;

    #endif// (_WIN32_WINNT >= 0x0500)

    } OPENFILENAME, *LPOPENFILENAME;

    'Text Files(*.txt)',0,'*.txt',0,'All Files(*.*)',0,'*.*',0,0

    筛选字符串中也可以同时指定多个扩展名,中间用分号隔开,如'*.txt;*.doc'。

    lpstrFile――指向一个包含文件名的缓冲区。如果这个缓冲区中已经包含了一个文件名,那么对话框初始化的时候将显示这个文件名。当用户选择了一个文件的时候,函数在这里返回新的文件名。

    nMaxFile――指定lpstrFile参数指向的缓冲区的长度。

    lpstrFileTitle――指向一个缓冲区,用来接收用户选择的不含路径的文件名。这个字段可以为NULL。

    nMaxFileTitle――指明lpstrFileTitle参数指向的缓冲区的长度。

    lpstrInitialDir――对话框的初始化目录,这个字段可以为NULL。

    lpstrTitle――指向自定义的对话框标题,如果这个字段是NULL,那么“打开”对话框和“保存”对话框的默认标题是“打开”和“另存为”。

    nFileOffset―返回文件名字符串中文件名的起始位置,如当用户选择了文件“c:\dir1\file.ext”时,这里将返回8。

    nFileExtension――返回文件名字符串中扩展名的起始位置,同样是上面的字符串,这里返回13。如果文件名的最后一个字符是“.”,这里返回0,表示文件没有扩展名,这个字段和nFileOffset字段为分析文件名提供了方便。

    lpstrDefExt――指定默认扩展名,如果用户输入了一个没有扩展名的文件名,那么函数会自动加上这个默认扩展名。

    Flags字段――该标志字段决定了对话框的不同行为,它可以是一些取值的组合。下面是一些比较重要的标志:

    OFN_ALLOWMULTISELECT――允许同时选择多个文件名。

    OFN_CREATEPROMPT――如果用户输入了一个不存在的文件名,对话框向用户提问“是否建立文件”。

    OFN_FILEMUSTEXIST――用户只能选择一个已经存在的文件名,使用这个标志的时候必须同时使用 OFN_PATHMUSTEXIST标志。

    OFN_HIDEREADONLY――对话框中不显示“以只读方式打开”复选框。

    OFN_OVERWRITEPROMPT――在“保存”文件对话框中使用的时候,当选择一个已存在的文件时,对话框会提问“是否覆盖文件”。

    OFN_PATHMUSTEXIST――用户输入文件名时,路径必须存在。

    OFN_READONLY――对话框中的“以只读方式打开”复选框初始化的时候处于选中状态。

    调用显示“打开”或“保存”文件对话框函数时,函数会停留直到对话框关闭为止,当用户单击了对话框中的“确 定”按钮时,函数返回TRUE,用户单击“取消”按钮退出时,函数返回FALSE,程序可以由此判断是否需要继续进行打开或保存文件的操作。 

    egg:

        OPENFILENAMEA ofn;
        char szFile[260];
        ZeroMemory(&ofn, sizeof(ofn));
        ofn.lStructSize = sizeof(ofn);
        ofn.hwndOwner = NULL;
        ofn.lpstrFile = szFile;
        ofn.lpstrFile[0] = '\0';
        ofn.nMaxFile = sizeof(szFile);
        ofn.lpstrFilter = "文本文件(*.txt)\0*.txt\0Word文件(*.doc)\0*.doc\0所有文件(*.*)\0*.*\0";
        ofn.nFilterIndex = 1;
        ofn.lpstrFileTitle = NULL;
        ofn.nMaxFileTitle = 0;
        ofn.lpstrInitialDir = NULL;
        ofn.Flags = 0;

        if (GetOpenFileNameA(&ofn) == FALSE)
        {
            return;
        }
        CString str_path = (CString)ofn.lpstrFile;
        SetDlgItemText(IDC_EDIT_PATH, str_path);

    3.文件夹打开对话框

    需引入头文件:#include "Shlobj.h"

    函数原型:

    typedef struct_browseinfo

    {

    HWND hwndOwner;

    LPCITEMIDLIST pidlRoot;

    LPSTR pszDisplayName;

    LPCSTR lpszTitle;

    UINT ulFlags;

    BFFCALLBACK lpfn;

    LPARAM lParam;

    int iImage;

    }BROWSEINFO,*PBROWSEINFO,*LPBROWSEINFO;

    参数含义:

    hwndOwner:浏览文件夹对话框的父窗体句柄。

    pidlRoot:ITEMIDLIST结构的地址,包含浏览时的初始根目录,而且只有被指定的目录和其子目录才显示在浏览文件夹对话框中。该成员变量可以是NULL,在此时桌面目录将被使用。

    pszDisplayName:用来保存用户选中的目录字符串的内存地址。该缓冲区的大小缺省是定义的MAX_PATH常量宏。

    lpszTitle:该浏览文件夹对话框的显示文本,用来提示该浏览文件夹对话框的功能、作用和目的。

    ulFlags:该标志位描述了对话框的选项。它可以为0,也可以是以下常量的任意组合:

    BIF_BROWSEFORCOMPUTER:返回计算机名。除非用户选中浏览器中的一个计算机名,否则该对话框中的“OK”按钮为灰色。

    BIF_BROWSEFORPRINTER:返回打印机名。除非选中一个打印机名,否则“OK”按钮为灰色。

    BIF_BROWSEINCLUDEFILES:浏览器将显示目录,同时也显示文件。

    BIF_DONTGOBELOWDOMAIN:在树形视窗中,不包含域名底下的网络目录结构。

    BIF_EDITBOX:浏览对话框中包含一个编辑框,在该编辑框中用户可以输入选中项的名字。

    BIF_RETURNFSANCESTORS:返回文件系统的一个节点。仅仅当选中的是有意义的节点时,“OK”按钮才可以使用。

    BIF_RETURNONLYFSDIRS:仅仅返回文件系统的目录。例如:在浏览文件夹对话框中,当选中任意一个目录时,该“OK”按钮可用,而当选中“我的电脑”或“网上邻居”等非有意义的节点时,“OK”按钮为灰色。

    BIF_STATUSTEXT:在对话框中包含一个状态区域。通过给对话框发送消息使回调函数设置状态文本。

    BIF_VALIDATE:当没有BIF_EDITBOX标志位时,该标志位被忽略。如果用户在编辑框中输入的名字非法,浏览对话框将发送BFFM_VALIDATEFAILED消息给回调函数。

    lpfn:应用程序定义的浏览对话框回调函数的地址。当对话框中的事件发生时,该对话框将调用回调函数。该参数可用为NULL。

    lParam:对话框传递给回调函数的一个参数指针

    iImage:与选中目录相关的图像。该图像将被指定为系统图像列表中的索引值。

    egg:

        TCHAR tszBuffer[MAX_PATH] = { 0 };
        BROWSEINFO bi;
        ZeroMemory(&bi, sizeof(BROWSEINFO));
        bi.hwndOwner = NULL;
        bi.pszDisplayName = tszBuffer;
        bi.lpszTitle = _T("请从下面选文件夹目录:");
        bi.ulFlags = BIF_RETURNFSANCESTORS;
        LPITEMIDLIST idl = SHBrowseForFolder(&bi);
        if (NULL == idl)
        {
            return;
        }
        SHGetPathFromIDList(idl, tszBuffer);
        SetDlgItemText(IDC_EDIT_SCAN, tszBuffer);

    好了,整理完了,此文章主要作为笔记来用来以后翻看用,不做别的用途,同时也供大家查看。

    展开全文
  • 1 - 基础,浏览一个文件夹 ...(注:这里的对象外壳名字空间中的一个节点,对象有可能一个文件夹,有可能一个文件,也有可能一个虚拟文件夹,例如:我的电脑,网上邻居,控制面板等)C#中,我们这样...

    1 - 基础,浏览一个文件夹

    我们知道,在win32中是以外壳名字空间的形式来组织文件系统的,在外壳名字空间里的每一个对象(注)都实现了一个IShellFolder的接口,通过这个接口我们可以直接查询或间接得到其他相关的接口。
    (注:这里的对象指的是外壳名字空间中的一个节点,对象有可能是一个文件夹,有可能是一个文件,也有可能是一个虚拟文件夹,例如:我的电脑,网上邻居,控制面板等)

    在C#中,我们这样定义 IShellFolder 接口:


    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime.InteropServices;

    namespace WinShell
    {
        [ComImport]
        [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        [Guid("000214E6-0000-0000-C000-000000000046")]
        public interface IShellFolder
        {
        }

    }


    当然,这个接口还没有列出细节函数。我们要做的仅仅是从最基础开始。

    首先我们必须了解,在外壳编程中,要使用 PIDL 路径代替普通路径(如果对 PIDL 不熟悉,请看Windows外壳名字空间的浏览)。

    “桌面”是最顶级的文件夹,外壳名字空间中其他各项都可以用从“桌面”开始的 PIDL 加以表示。

    如何获取“桌面”的 PIDL 和其 IShellFolder 接口呢,可以通过 API SHGetDesktopFolder:

    [DllImport("shell32.dll")]
            public static extern Int32 SHGetDesktopFolder(out IntPtr ppshf);

    /// <summary>
            
    /// 获得桌面 Shell
            
    /// </summary>

            public static IShellFolder GetDesktopFolder(out IntPtr ppshf)
            {
                SHGetDesktopFolder(out ppshf);
                Object obj = Marshal.GetObjectForIUnknown(ppshf);
                return (IShellFolder)obj;
            }


    //获得桌面 PIDL
                IntPtr desktopPtr;
                IShellFolder desktop = API.GetDesktopFolder(out desktopPtr);


    好的,我们取得“桌面”的 IShellFolder 接口,就已经成功了一半。现在我需要通过“桌面”,来获取“C:\”这个路径的 PIDL 和 IShellFolder 接口,可以通过 IShellFolder 的 ParseDisplayName 和 BindToObject 函数来实现:

    void ParseDisplayName(
                IntPtr hwnd,
                IntPtr pbc,
                [MarshalAs(UnmanagedType.LPWStr)] string pszDisplayName,
                out uint pchEaten,
                out IntPtr ppidl,
                ref uint pdwAttributes);

    void BindToObject(
                IntPtr pidl,
                IntPtr pbc,
                [In()] ref Guid riid,
                out IShellFolder ppv);



    //获取 C 盘的 PIDL
                string FolderPath = @"C:\";
                IntPtr Pidl = IntPtr.Zero;
                IShellFolder Root;
                uint i, j = 0;
                desktop.ParseDisplayName(Handle, IntPtr.Zero, FolderPath, out i, out Pidl, ref j);
                desktop.BindToObject(Pidl, IntPtr.Zero, ref Guids.IID_IShellFolder, out Root);


    前提是你应该保证路径存在,因为我没有做任何出错控制。这样我们就获得了一个 Root,它表示C盘。通过这个Root,我们可以用 EnumObjects 来循环获取其子项(子文件和子文件夹):

    [PreserveSig]
            int EnumObjects(IntPtr hWnd, SHCONTF flags, out IntPtr enumIDList);

     

    //循环查找 C 盘下面的文件/文件夹的 PIDL
                IEnumIDList fileEnum = null;
                IEnumIDList folderEnum = null;
                IntPtr fileEnumPtr = IntPtr.Zero;
                IntPtr folderEnumPtr = IntPtr.Zero;
                IntPtr pidlSub;
                int celtFetched;

                //获取子文件夹
                if (Root.EnumObjects(this.Handle, SHCONTF.FOLDERS | SHCONTF.INCLUDEHIDDEN, out fileEnumPtr) == API.S_OK)
                {
                    fileEnum = (IEnumIDList)Marshal.GetObjectForIUnknown(fileEnumPtr);
                    while (fileEnum.Next(1, out pidlSub, out celtFetched) == 0 && celtFetched == API.S_FALSE)
                    {
                        //获取显示名称
                        string name = API.GetNameByPIDL(pidlSub);
                        lvFile.Items.Add(name, 1);
                    }

                }


                //获取子文件
                if (Root.EnumObjects(this.Handle, SHCONTF.NONFOLDERS | SHCONTF.INCLUDEHIDDEN, out folderEnumPtr) == API.S_OK)
                {
                    folderEnum = (IEnumIDList)Marshal.GetObjectForIUnknown(folderEnumPtr);
                    while (folderEnum.Next(1, out pidlSub, out celtFetched) == 0 && celtFetched == API.S_FALSE)
                    {
                        string name = API.GetNameByPIDL(pidlSub);
                        lvFile.Items.Add(name, 0);
                    }

                }


    事实上,代码到此结束。然而我发现有太多的结构体和枚举没有介绍(以后会有更多),有兴趣的朋友可以等待我下一节介绍

    转载于:https://www.cnblogs.com/hsyzero/p/3322055.html

    展开全文
  • 系统文件夹详解Win9X/Me篇 朋友我们每天都使用Windows,可你对它的系统文件夹熟悉吗?... 首先需要明确一个概念,“系统文件夹存放操作系统主要文件的文件夹,一般安装操作系统过程自动创建并将...

    系统文件夹详解Win9X/Me篇
    朋友我们每天都在使用Windows,可你对它的系统文件夹熟悉吗?据说目前Windows9X仍然有很多用户,而WindowsMe和Windows9X又很相近。这里就带你走进Windows9X/Me主要的系统文件夹,将它们看个通透吧。
    首先需要明确一个概念,“系统文件夹”指的是存放操作系统主要文件的文件夹,一般在安装操作系统过程中自动创建并将相关文件放在对应的文件夹中,这里面的文件直接影响系统的正常运行,多数都不允许随意改变。
    Command
    该文件夹内有很多DOS下的外部命令程序,这些小工具在系统崩溃对于系统的修复很有用,如Bootdisk.Bat文件可以用于在DOS命令行上创建启动盘。
    Cookies
    “甜饼”文件夹,存放用户浏览某些网站时由网站在你的硬盘上创建的一些个人资料,如用户名、所到过的网址等。
    Desktop
    桌面文件夹,存放于该文件夹内的文件将直接显示在桌面上。
    DownloadedProgramFiles
    存放IE下载文件的文件夹。其中包含了显示已打开过的Web页所需的文件(大部分文件用来运行Web页面上的动画)。注意:这并不是你下载的软件必须放置的文件夹。
    Favorites
    “收藏夹”文件夹。我们在IE中将某个网页“添加到收藏夹”,实际上就是将网页的快捷方式存放在该文件夹下,当然也可以在该文件下创建更多的文件夹,以便将收藏分类存放。
    Fonts
    字体文件夹。系统中所有要用到的字体都存放在此,所以添加新字体除了通过打开控制面板的“字体”窗口中的“安装新字体”项的方式进行以外,也可以直接将字体文件复制到这里;在此也可删除某些不常用的字体文件(但注意扩展名为.fon的屏幕字体最好不要乱删,以免引起系统不能正常显示)。
    Help
    帮助文件的存放文件夹。里面包括很多很详细的帮助文件,遇到疑难可多看这些帮助文件,它们对用户会有很多帮助。
    History
    历史记录文件夹。当在IE浏览器浏览过一个网页时,IE默认会创建一个历史记录信息存放在此。如果不想让他人知道你的浏览行踪,可以删除这个文件夹中的内容。
    OfflineWebPages
    脱机浏览文件的存放位置。当某个站点被设成允许脱机使用时,就会在该文件夹中生成对应的文件。
    Recent
    记录最近打开过的文档的文件夹。其中的内容和开始菜单中“文档”项中的内容相对应,所以要想清除最近打开过的文档记录,直接删除该文件夹中的快捷方式即可。
    StartMenu
    开始菜单文件夹。其中的项目对应开始菜单中的程序项,在该文件夹中可以调整开始菜单项目(如增加、删除、重新分类等)。
    Sysbckup
    该文件夹用于存放系统对注册表和系统文件的备份信息。
    System
    这是系统文件夹,存放了系统中的重要文件(如DLL文件等),一些软件在安装时也会向该文件夹复制文件,因此,随着安装的软件的增加,此文件夹中的内容也会越来越多。该文件夹内的文件一般不要轻易删除,否则会导致系统错误。
    System32
    32位的系统文件夹,其中有很多虚拟设备文件(扩展名为VXD),随意删除它们会引起系统出错甚至崩溃。
    Temp
    临时文件夹,存放系统运行时产生的临时文件。其中的文件通常需要手动进行清理。
    TemporaryInternetFiles
    IE的临时文件夹。该文件夹中存放IE浏览网页时所生成的一些内容,当再次打开相同网页时系统会从这里读取,以加快浏览速度。因此适当加大该临时文件夹的空间会使浏览速度更快(在控制面板的“Internet选项”中设置)。
    系统文件夹详解Win2000/XP篇

    既然说完了win98/Me的系统文件夹那么现在说说流行的Win2000/XP的系统文件夹吧。在系统安装完成后,默认会生成三个文件夹:“WinNT”(对XP而言则是Windows)、“DocumentsandSettings”和“ProgramFiles”。与Windows9X/Me相比,在系统安装目录(Winnt或Windows)中的很多文件夹的作用都是相同的。由于很多系统必需的文件存放到了“DocumentsandSettings”下,所以我们也将它作为系统文件夹来介绍。同“Win9X/Me”一样,我们仍然只介绍重要的常见的文件夹。
    1.安装目录下与Win9X/Me不同的文件夹
    与Win9X/Me相同文件夹的作用在上篇我已经提到了,这里不再赘述了。此处仅介绍与Win9X/Me不同的文件夹。
    ConnectionWizard:存放“Internet连接向导”用到的文件。
    DriverCache:该文件夹一般还会有i386文件夹,其中存放的是会用到的驱动程序压缩文件(该文件一般有几十兆之多)。
    Ime:输入法信息存放该文件夹中。
    Prefetch:预读取文件夹。为了加快文件的访问速度,在WinXP中使用了预读取技术,它会将访问过的文件在该文件夹下生成新的信息(扩展名为PF的文件)。
    Repair:第一次安装Win2000/XP时系统自动在这里保存AUTOEXEC.BAT,CONFIG.SYS等相关的系统文件。
    Resources:存放相关桌面主题的文件夹。
    System和System32:尽管这两个文件夹在Win9X/Me中也有,但是,Win2000/XP中几乎所有的系统文件都放在System32下,而system下只存放一些16位的驱动程序及一些软件的共享运行库。
    Temp:在Win2000/XP中这个文件夹已经基本不起作用,因为每个用户都有自己专门的临时文件夹(放在“DocumentsandSettings”下,参见后面的介绍)。
    2.“DocumentsandSettings”文件夹
    默认情况下,此文件夹中会有Administrator、Allusers、DefaultUser、LocalService、NetworkService,以及用不同用户名建立的文件夹(如果系统中有多个用户),除了LocalService、NetworkServiceviwl(它们是WinXP中的“服务管理”程序所创建的,提供给那些作为服务的程序用。如安装FoxmailServer搭建邮件服务器时,这两个文件夹是系统必需的,不要随意修改(默认是隐含属性))。其他的都为用户配置文件夹,而且其中的文件夹结构也大体相同。
    1)以“Allusers”为例说明用户配置文件所包含的主要内容(下面提到的某些文件夹可能是隐含属性,需要先设置让系统显示所有文件才能看到):
    ①ApplicationData:通用应用程序数据文件夹。此处存放着已经安装的一些应用程序的专用数据,这里面的内容是软件安装时自动生成的。例如在Allusers的ApplicationData文件夹下,就可能有MicrosoftWordStartup文件夹(如果安装过Office,此处存放的是Word启动时要自动打开的文档)。
    ②“开始”菜单文件夹:存放开始菜单中的部分程序组和快捷方式。
    ③桌面文件夹:存放些该登录用户的部分桌面项目。
    豆仔提示:某个用户“开始”菜单、桌面上的项目包括对应的用户名文件夹下的上述两个文件夹和AllUsers下面的这两个文件夹的内容。
    ④Templates:模板文件夹,其中可能有Word、Excel等的模板文件,是用于在点击右键选择“新建”时的参考模板。
    ⑤共享文档:当然就是你允许共享的那些东东的存放之处了。下面有“共享图像”和“共享音乐”两个文件夹。
    2)针对不同的用户,在用户名文件夹下还会有:
    LocalSettings:是“本地设置”文件夹,存放着应用程序的数据、历史纪录和临时文件夹,如History、Temp和TemporaryInternetFiles等(作用和Win9X/Me中相同)。
    ApplicationData:不同用户文件夹下面的ApplicationData文件夹中的内容也不同,如ApplicationDataMicrosoftInternetExplorerQuickLaunch存放“开始”菜单右边“快速启动”工具栏中的快捷方式,ApplicationDataMicrosoftAddressBook则是OE的通讯簿,等等。
    此外,用户文件夹下也有NetHood、PrintHood、Sendto、收藏夹、桌面等文件夹。
    3)如果处于局域网中,当用属于域或工作组的账户登录系统后,在“DocumentsandSettings”中会有“AllUsers.windows”(对WinXP)或“AllUsers.Winnt”(对Win2000)文件夹;而如果用覆盖方式重新安装过系统,且在安装过程中又设置了与以前相同的用户名,在安装程序在创建用户信息时发现同名的文件夹已经存在,便会自动用“用户名.计算机名”的命名方式来创建新的用户配置信息文件夹。
    另外在“ProgramFiles”(应用程序文件夹)下也会有系统运行必需的一些文件。针对各人安装系统后所装软件的不同,该文件夹的内容会有很大差异,其中都会有“CommonFiles”(存放软件会用到的公用库文件)、“InternetExplorer”(IE浏览器不在安装目录下哟)、“WindowsMediaPlayer”(媒体播放程序)等,这里就不详述。
     
     

    转载于:https://blog.51cto.com/caizhe/489254

    展开全文
  • 众所周知,在Windows中“\”符号是路径的分隔符,比如“C:\Windows\”的意思是指C分区中的Windows文件夹,而“C:\Windows\System.exe”的意思是C分区中的Windows文件夹中的System.exe文件。那么如果文件名中有“...
    什么是带点文件夹
    创建带点文件夹
    带点文件特点
    删除带点文件夹 
    利用这个奇怪的东西能做什么
    1、带点文件夹的原理
    众所周知,在Windows中“\”符号是路径的分隔符,比如“C:\Windows\”的意思是指C分区中的Windows文件夹,而“C:\Windows\System.exe”的意思是C分区中的Windows文件夹中的System.exe文件。那么如果文件名中有“\”符号会怎么样呢?假如“S\”是一个文件夹的名字,这个文件夹位于“F:\”,它的路径就是“F:\S\”,当我们试图访问时,Windows会错误的认为我们要打开的文件是F分区下的名为“S”的文件夹,而非“s\”文件夹,这样Windows就无法准确打开该文件夹,并且会返回一个错误信息,因为以上路径并不存在。
    2、建立带点目录
    知道了原理,那么就在Windows XP下简单的创建“S\”文件夹吧。咦?怎么系统会提示“文件名不能包含‘\’符号”。看来微软早已想到这一点了,看来只好饶道而行创建这个“特殊”文件夹了。
    在“运行”栏中执行“cmd”命令,打开命令提示符窗口,在其中输入“c:\”命令(不含引号,下同),接着在“c:\”后输入“mkdir s..\”,按回车键。现在,打开资源管理器,可看到C盘下建立了一个名为“s.”的文件夹,不过这个文件夹既不能打开也不能删除。不能打开是因为它的实际路径是“c:\s..\”(由于是我们自己创建的,所以可以确定它的实际路径),但在系统资源管理器中,它的文件夹名变成了“s.”,这样当试图打开它时,系统实际上尝试打开的是“c:\s.\”,这当然是不能打开的。由于系统认为该文件夹并不存在,所以会报错,不能删除也是基于此原因。
    同样,如果在c:\后键入mkdir s...\按回车键,在资源管理器中会看到名为“s..”的文件夹。
    3、带点文件夹的特点:
    实际上这样的文件夹是无效的,通常不能打开也不能删除。
    利用“md t..\”建立的带两点文件夹:当把文件拖放到它时,出现另一个文件夹,那个文件与它同名但没有了点,内容相同。这时它们都可以访问——咒语被破除了~  接下来再看看它葫芦里还有什么药。 试试删除它们,只能删除一个!刷新一下,回到最初建立它时的情况。一个空的带点文件夹,不能删除,也不能打开!  它有什么能耐呢? 就这两下子,不堪一击~
    一个形像的比喻:它们就像一对双胞胎怪物,一个显形,一个隐形。打那个显形的怪物一下,那个隐形的就显形了。杀它它们中的一个,另一个就白痴了。
    再看看带三点的文件夹(创建后只显示两点)。同样常规方法不能打开也不能删除。用对付上面那个家伙同样的方法 向它拖放文件,咦,它还反抗:生成一个同名不带点的空文件夹(与上不同哦)同时给出警告。然后,生成的那个文件夹就跟它无关了,就像拉了泡屎~
    不过可以通过 DOS命令向里面复制文件,也可以从其中读文件,但是也不能进入这个目录中!即使向其中复杂了文件,在资源管理器中也显示空。
    既然这样的文件夹在Windows下不会被删除,那么就大可放心的将***工具或重要文件保存其中了。经过某某测试,在其中即使存放***甚至病毒程序,也不会被杀毒软件查杀到了。
    4 访问与删除:
    这类文件夹在资源管理器中不能正常打开。在DOS中也进不去。 但可以向其中复制文件,或者从它复制文件,显示为空文件夹。
    带两点文件夹容易被破除,带三点文件夹牢固些,但既然可以用DOS命令建立,当然也可以用DOS命令删除。删除两点文件夹"rd t..\ /s", 删除带三点文件夹"rd t...\ /s"
    某某说可以这样利用,但如果你不怕丢了你的东西的话,尽管试试:
    建立这样一个文件夹,不仅可起到防止误删除的目的。还可将一些重要资料存放其中,达到另类加密的效果。

    简言之:
    带两点文件夹用鼠标拖放文件到它上面,它就显原形了(出现一对文件夹),随便删除其中一个文件夹(也只能删除其中一个文件夹),另一个里面的内容也没了。要删除它也容易呀,虽然用鼠标不能,但在DOS下使用命令 rd s..\ /s 就搞定了。
    这就像 一对双胞胎怪物,一个显形,一个隐形。打那个显形的怪物一下,那个隐形的就显形了。杀它它们中的一个,另一个就白痴了。如果不用绝招,不能把它们一起干掉哦!
    带三点文件夹可算是个怪物了,用鼠标删除不了,不能用上面的方法搞定它,要用dos命令才能搞定~。可以用DOS命令复制文件到里面,但也不能进入目录。问题对外显示为空。
    总之:带点文件夹在资源管理器中不能打开和删除,要在DOS下才能删除;即使在DOS下也进不去;可以复制文件到里面,或从里面复制文件出来;不管是不是空在资源管理器中总显示为空。

    不知道上面讲那么多,你有没有晕?
    一般不要把重要的东西放到这样的黑匣子中,丢了的话天知道怎么办呢!
    如果要用,可以这样简单点:
    如果一个精通文件夹里有个这样的东西,这个文件夹也不能轻易删除了。 那么可以把东西和这个奇怪的文件夹放在一起,可以保护我们的文件不被轻易删除。
     

     

    转载于:https://blog.51cto.com/689569/206079

    展开全文
  • 问题: Window64位运行不了的...3.DosBox的控制台下运行 Mount x: x:/masm (x盘,比如我的把masm程序放在F盘下的masm文件夹中,所以输入了Mount f: f:/masm),Mount f: f:/masm 意思把f:/masm 挂载到f
  • 问题: Window64位运行不了的...3.DosBox的控制台下运行 Mount x: x:/masm (x盘,比如我的把masm程序放在F盘下的masm文件夹中,所以输入了Mount f: f:/masm),Mount f: f:/masm 意思把f:/masm 挂载到f...
  • ubuntu下装有virtualBox虚拟机,虚拟机上装的是windows xp系统,有的时候这两个系统之间..., 点开后可以选择添加,然后选择你要共享的文件夹,当然是指ubuntu下的路径,然后输入文件夹名字,比如你选择的实际文件...
  • 客户端可以在Windows,Linux,FreeBSD和macOS上运行,而服务器可以在可以安装Qt的任何设备上运行。 请注意,“ Windows”是指7及更高版本。 Vista可能受支持,但我们不能保证。 如果您不想遇到潜在的问题,则可以...
  • 朋友我们每天都使用Windows,可你对它的系统文件夹熟悉吗?下面的文章我们就将介绍各种Windows操作系统文件夹的作用。  系统文件夹详解Win9X/Me篇 ... 首先需要明确一个概念,“系统文件夹
  • 这里的挂载,linux虚拟机可以访问windows系统的指定文件夹,http://包括读写。  以下挂载方式,需要安装VMware Tools。安装VMware Tools,右键点击你要启动的linux虚拟机,会弹出一个右键菜单,其中会有...
  • 说明:本文的域客户端是指在上一篇文章已经应用了工作文件夹组策略的客户端,对于不应用工作文件夹组策略且有特殊配置的用户将另外讨论。首先将windows 8.1with update客户端加域。然后使用WF Users组的工作文件夹...
  • 经近三个月的实验准确率一直能维持一个较高的水平. ☕ 同时也一个学习golang的一个入门级项目. 项目来由 热衷于足球多年,之余也会去研究一下,时间久了,都会有自己的心得. 但不可能每次都那么费劲的自己...
  • 第一部分:支撑整个操作系统运行所必须要的文件和文件夹。这些文件夹非常重要,没有特殊情况时,请不要删除这些文件夹内的任何可用文件 ...可以将文件夹中的鼠标指针删除,对Windows系统默认的鼠标...
  • 譬如你将windows系统的D盘某一个文件夹放在桌面上当做快捷键。 一、软链接创建 1、创建软链接 ln -s 【目标目录】 【软链接地址】 【目标目录】软连接指向的目标目录下,【软链接地址】“快捷键”文件名称,...
  • C++ 中,有一个stream这个类,所有的I/O都以这个“流”类为基础,包括文件I/O。 1)插入器(&lt;&lt;) 向流输出数据。系统有一个默认的标准输出流,一般情况下是指显示器;例如 c++ 大家常用的 cout ...
  • 系统文件夹详解Win9X/Me篇 朋友我们每天都使用Windows,可你对它的系统文件夹熟悉吗?... 首先需要明确一个概念,“系统文件夹存放操作系统主要文件的文件夹,一般安装操作系统过程自动创建并将...
  • 虚拟机设置里面,开启共享文件夹,主机路径是指虚拟机外面真实的要共享的文件夹路径。我的电脑装的是Windows,虚拟机里面装的是uos20,也就是deepinV20,所以这里设置的共享文件夹是F盘下面的winshare。 2,打开...
  • 2052文件夹

    2019-10-02 03:16:14
    很多人可能和我一样发现安装微软的软件,很多目录里面都有个2052文件夹,而我们所需的很多文件都在这个文件夹里,和2052同级的还有类似1048....在Windows中,每个Locale可以用一个32位数字表示,记作LCID。在win...
  • 超过10万人正在关注赶快来关注吧,这里有你想...卸载已安装的应用程序和Windows 10内置应用卸载是指将已安装的应用程序从系统删除,包括安装程序时向Program Files文件夹复制的程序文件,以及注册表写入的程...
  • <p><code>config</code> 文件夹是放在和 <code>MarkdownPicPicker.exe</code> 同一目录下么? 另外我按照文档的说明配置好后,测试运行程序提示:There is no picture in clipboard. 已经复制了图片的&#...
  • 环境变量(environment variables)一般是指在操作系统用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。 环境变量是操作系统一个具有特定名字的对象,它包含了一个或者多个应用...
  • 超过10万人正在关注赶快来关注吧,这里有你想...卸载已安装的应用程序和Windows 10内置应用卸载是指将已安装的应用程序从系统删除,包括安装程序时向Program Files文件夹复制的程序文件,以及注册表写入的程...
  • Windows中的共享文件和文件服务器

    万次阅读 2018-10-17 11:59:02
    目录 共享文件的设置 默认共享 关闭默认共享 关闭共享服务 共享文件夹权限 ...文件服务器资源管理器的搭建 ...文件共享是指主动地网络上共享...很早期的Windows中(Windows2000以下),文件共享服务是利用TCP的1...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 356
精华内容 142
关键字:

在windows中,文件夹是指