返回“我的文档”路径字符串
Environment.GetFolderPath(Environment.SpecialFolder.Personal)
本技巧使用GetFolderPath方法来获取指向由指定枚举标识的系统特殊文件夹的路径。语法格式如下:
public static string GetFolderPath (SpecialFolder folder)
参数folder标识系统特殊文件夹的枚举常数。
如果指定系统的特殊文件夹存在于用户的计算机上,则返回到该文件夹的路径;否则为空字符串("")。如果系统未创建文件夹、已删除现有文件夹或者文件夹是不对应物理路径的虚拟目录(例如“我的电脑”),则该文件夹不会实际存在。
主要代码如下:
MessageBox.Show("我的文档系统路径:"+Environment.GetFolderPath(Environment.SpecialFolder.Personal),"我的文档",MessageBoxButtons.OK,MessageBoxIcon.Information);
参考一:C# 如何获取某用户的“我的文档”的目录
Console.WriteLine(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
System.Environment.GetFolderPath 方法
获取指向由指定枚举标识的系统特殊文件夹的路径。
public static string GetFolderPath(
Environment.SpecialFolder folder
)
Environment.SpecialFolder 枚举说明:
成员名称 说明
ApplicationData 目录,它用作当前漫游用户的应用程序特定数据的公共储存库。
CommonApplicationData 目录,它用作所有用户使用的应用程序特定数据的公共储存库。
LocalApplicationData 目录,它用作当前非漫游用户使用的应用程序特定数据的公共储存库。
Cookies 用作 Internet Cookie 的公共储存库的目录。
Desktop 逻辑桌面,而不是物理文件系统位置。
Favorites 用作用户收藏夹项的公共储存库的目录。
History 用作 Internet 历史记录项的公共储存库的目录。
InternetCache 用作 Internet 临时文件的公共储存库的目录。
Programs 包含用户程序组的目录。
MyComputer “我的电脑”文件夹。
MyMusic “My Music”文件夹。
MyPictures “My Pictures”文件夹。
Recent 包含用户最近使用过的文档的目录。
SendTo 包含“发送”菜单项的目录。
StartMenu 包含“开始”菜单项的目录。
Startup 对应于用户的“启动”程序组的目录。
System “System”目录。
Templates 用作文档模板的公共储存库的目录。
DesktopDirectory 用于物理上存储桌面上的文件对象的目录。
Personal 用作文档的公共储存库的目录。
MyDocuments “我的电脑”文件夹。
ProgramFiles “Program files”目录。
CommonProgramFiles 用于应用程序间共享的组件的目录。
参考二:C#打开桌面等特殊系统路径
不同的操作系统,桌面的路径不尽相同,而且随着用户安装位置的不同也不同。
C#可以从Windows注册表读取得到用户的特殊文件夹(桌面、收藏夹等等)的位置。
代码如下:
using Microsoft.Win32;
namespace JPGCompact
{
public partial class MainForm : Form
{
private void Test()
{
RegistryKey folders;
folders = OpenRegistryPath(Registry.CurrentUser, @"\software\microsoft\windows\currentversion\explorer\shell folders");
// Windows用户桌面路径
string desktopPath = folders.GetValue("Desktop").ToString();
// Windows用户字体目录路径
string fontsPath = folders.GetValue("Fonts").ToString();
// Windows用户网络邻居路径
string nethoodPath = folders.GetValue("Nethood").ToString();
// Windows用户我的文档路径
string personalPath = folders.GetValue("Personal").ToString();
// Windows用户开始菜单程序路径
string programsPath = folders.GetValue("Programs").ToString();
// Windows用户存放用户最近访问文档快捷方式的目录路径
string recentPath = folders.GetValue("Recent").ToString();
// Windows用户发送到目录路径
string sendtoPath = folders.GetValue("Sendto").ToString();
// Windows用户开始菜单目录路径
string startmenuPath = folders.GetValue("Startmenu").ToString();
// Windows用户开始菜单启动项目录路径
string startupPath = folders.GetValue("Startup").ToString();
// Windows用户收藏夹目录路径
string favoritesPath = folders.GetValue("Favorites").ToString();
// Windows用户网页历史目录路径
string historyPath = folders.GetValue("History").ToString();
// Windows用户Cookies目录路径
string cookiesPath = folders.GetValue("Cookies").ToString();
// Windows用户Cache目录路径
string cachePath = folders.GetValue("Cache").ToString();
// Windows用户应用程式数据目录路径
string appdataPath = folders.GetValue("Appdata").ToString();
// Windows用户打印目录路径
string printhoodPath = folders.GetValue("Printhood").ToString();
}
private RegistryKey OpenRegistryPath(RegistryKey root, string s)
{
s = s.Remove(0, 1) + @"\";
while (s.IndexOf(@"\") != -1)
{
root = root.OpenSubKey(s.Substring(0, s.IndexOf(@"\")));
s = s.Remove(0, s.IndexOf(@"\") + 1);
}
return root;
}
}
c#中读取系统的环境变量、我的文档路径、桌面路径等
1
直接System.Environment.GetEnvironmentVariable["变量名"];
比如得到计算机名、程序文件夹等
[sourcecode language='c#']
TextBox1.Text = System.Environment.GetEnvironmentVariable(“COMPUTERNAME”) +”rn”;
TextBox1.Text = System.Environment.GetEnvironmentVariable(“ProgramFiles”) +”rn”;
[/sourcecode]
至于像“桌面”“我的文档”可以这么得到
[code language='C#']
TextBox1.Text += Environment.GetFolderPath(Environment.SpecialFolder.Personal)+ "rn";//我的文档
TextBox1.Text += Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "rn";//桌面
[/code]
就是用Environment.GetFolderPath(Environment.SpecialFolder.特殊文件夹)
像cookies、音乐、视频、发送到等等都可以这样获得路径
2
C#读取系统的环境变量
using System; using System.Collections;
class ForeachApp { public static void Main() { // 把环境变量中所有的值取出来,放到变量environment中 IDictionary environment = Environment.GetEnvironmentVariables();
// 打印表头 Console.WriteLine("环境变量名\t=\t环境变量值");
// 遍历environment中所有键值 foreach (string environmentKey in environment.Keys) { // 打印出所有环境变量的名称和值 Console.WriteLine("{0}\t=\t{1}", environmentKey, environment[environmentKey].ToString()); } } }
|
3
C#读取设置path环境变量并重启计算机
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;//注册表操作要引用的空间
using System.Runtime.InteropServices;//调用API函数需要的引用,来加载非托管类user32.dll
namespace 用程序修改环境变量
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 读取注册表
/// path的路径:[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment]
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tbnRead_Click(object sender, EventArgs e)
{
RegistryKey regLocalMachine = Registry.LocalMachine;
RegistryKey regSYSTEM = regLocalMachine.OpenSubKey("SYSTEM", true);//打开HKEY_LOCAL_MACHINE下的SYSTEM
RegistryKey regControlSet001 = regSYSTEM.OpenSubKey("ControlSet001", true);//打开ControlSet001
RegistryKey regControl = regControlSet001.OpenSubKey("Control", true);//打开Control
RegistryKey regManager = regControl.OpenSubKey("Session Manager", true);//打开Control
RegistryKey regEnvironment = regManager.OpenSubKey("Environment",
true);//打开MSSQLServer下的MSSQLServer
this.richTextBox1.Text = regEnvironment.GetValue("path").ToString();//读取path的值
}
private void btnClose_Click(object sender, EventArgs e)
{
Close();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]//SendMessageTimeout是在user32.dll中定义的
public static extern IntPtr SendMessageTimeout(
IntPtr windowHandle,
uint Msg,
IntPtr wParam,
IntPtr lParam,
SendMessageTimeoutFlags flags,
uint timeout,
out IntPtr result
);
[Flags]
public enum SendMessageTimeoutFlags : uint
{
SMTO_NORMAL = 0x0000,
SMTO_BLOCK = 0x0001,
SMTO_ABORTIFHUNG = 0x0002,
SMTO_NOTIMEOUTIFNOTHUNG = 0x0008
}
private void btnWrite_Click(object sender, EventArgs e)
{
RegistryKey regLocalMachine = Registry.LocalMachine;
RegistryKey regSYSTEM = regLocalMachine.OpenSubKey("SYSTEM", true);//打开HKEY_LOCAL_MACHINE下的SYSTEM
RegistryKey regControlSet001 = regSYSTEM.OpenSubKey("ControlSet001", true);//打开ControlSet001
RegistryKey regControl = regControlSet001.OpenSubKey("Control", true);//打开Control
RegistryKey regManager = regControl.OpenSubKey("Session Manager", true);//打开Control
RegistryKey regEnvironment = regManager.OpenSubKey("Environment",
true);//打开MSSQLServer下的MSSQLServer
regEnvironment.SetValue("path", this.richTextBox1.Text);//读取path的值
MessageBox.Show("修改成功");
//下面利用发送系统消息,就不要重新启动计算机了
const int HWND_BROADCAST=0xffff;
// DWORD dwMsgResult = 0L;
const uint WM_SETTINGCHANGE = 0;
const long SMTO_ABORTIFHUNG = 0x2;
System.UInt32 dwMsgResult1=0;
long s;
// SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (string)"Environment", SMTO_ABORTIFHUNG, 5000,(long)s);
}
/// <summary>
/// 重新启动计算机
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <returns></returns>
[DllImport("user32.dll")]
//主要API是这个,注意:必须声明为static extern
private static extern int ExitWindowsEx(int x, int y);
private void button1_Click(object sender, EventArgs e)
{
ExitWindowsEx(2,0);
}
}
}
分享到:
相关推荐
需要注意的是,为了适应不同的环境变量和参数,使用了大量的`Type.Missing`值作为参数的默认值,这是因为在打开文档时,某些参数如密码、格式等可能不需要指定,因此使用`Type.Missing`可以避免不必要的错误。...
总结来说,C#读取`.doc`文件通常依赖于`Microsoft.Office.Interop.Word`,而读取`.docx`文件则可以通过直接操作Open XML格式或者使用第三方库。了解这些基础将使你在处理Word文档时更加得心应手。如果你的项目中涉及...
本示例将详细介绍如何使用C#读取和写入netCDF文件。 首先,我们需要引入`netCDF4.dll`这个库,它是C#中操作netCDF文件的关键。这个库提供了丰富的API,允许开发者直接在.NET平台上与netCDF文件进行交互。要使用这个...
### C#读取EXCEL文档知识点详解 #### 一、知识点概述 在软件开发过程中,经常需要处理Excel文件。本文将详细介绍如何使用C#语言读取Excel文档,并将其转换为`DataSet`对象,以便进一步处理或分析数据。该方法利用...
- 使用相对路径或环境变量来存储文件路径,以便在不同环境中运行程序时能正确找到文件。 - 提供错误提示,以帮助用户理解操作失败的原因。 结合上述知识点,"c#TXT文件阅读器"项目可能涉及从头构建一个完整的文本...
1. **配置系统环境变量**:确保添加了GDAL的库路径到系统的`PATH`环境变量。这样,运行时系统能正确找到GDAL的动态链接库。 2. **检查GDAL DLLs**:确认所有必要的GDAL DLLs都在项目输出目录中,并且版本匹配。有时...
在安装过程中,可能需要配置环境变量以确保C#编译器能找到HDF5的头文件和库文件。 一旦库安装成功,我们就可以在C#代码中引入相应的命名空间,如`Hdf5`或`H5`,来开始处理HDF5文件。读取HDF5文件的基本步骤如下: ...
1. **C#基础**:首先,你需要熟悉C#的基本语法和编程概念,包括类、对象、方法、变量、条件语句、循环等。这是编写任何C#程序的基础。 2. **NuGet包管理器**:为了使用PDFSharp,你需要通过NuGet包管理器来安装...
- 环境配置:确保安装了FFmpeg库,并将其路径添加到系统环境变量,以便SharpFFmpeg能够找到并使用。 - 错误处理:由于FFmpeg的操作涉及大量的I/O和低级操作,必须正确处理可能出现的错误,例如文件不存在、格式不...
在C#环境中,我们可以通过集成开发环境(IDE)如Visual Studio创建一个简单的Windows Forms应用程序来实现这一功能。 首先,我们需要确保已安装了Codesoft软件,并且了解其API或SDK(软件开发工具包)的相关文档。...
1. **线程概念**:线程是操作系统分配CPU时间的基本单元,每个线程都有自己的执行路径,可以独立地执行代码,共享同一进程的资源。 2. **线程创建**:在C#中,可以使用`System.Threading.Thread`类来创建线程。通过...
在C#编程环境中,创建一个窗体应用来读取TXT文档是一个常见的任务,尤其是在开发桌面应用程序时。这个任务涉及到文件I/O操作,Windows Forms控件的使用,以及文本数据的处理。下面将详细讲解实现这一功能所需的知识...
在ASP.NET环境中,C#是一种常用的编程语言,用于开发各种应用程序,包括Web应用程序。本示例探讨了如何使用C#将Excel数据转换成TXT文档。转换过程涉及到读取Excel文件,处理其中的数据,并将处理后的数据写入TXT文件...
在开始开发之前,需要先安装Tesseract OCR引擎,并将其添加到系统的PATH环境变量中。同时,需要下载对应的中文语言数据包,如`chi_sim`(简体)和`chi_tra`(繁体),并放置在正确的位置。 2. **C#项目设置**: -...
"SpecialFolder"可能指的是C#中的特殊文件夹枚举(System.Environment.SpecialFolder),它提供了访问操作系统特定特殊文件夹(如桌面、文档、临时文件夹等)的方法。 2. **SpecialFolder.rar**:这可能是一个RAR...
当我们需要在C# WinForm应用中执行一些自动化任务或者需要与系统进行更深度的交互时,可能会选择调用VBScript脚本来实现特定功能。下面将详细解释如何在C#中调用VBScript脚本,并探讨这一过程中的关键知识点。 首先...
1. **检查路径**: 确保GDAL的所有依赖库都在系统PATH环境变量所指定的目录中。 2. **版本匹配**: 确认GDAL的.NET绑定与GDAL核心库的版本一致。 3. **重新构建项目**: 如果是从源码编译的GDAL,可能需要清理项目并...
例如,你可以创建一个配置文件,将推广号作为变量存储,然后在打包时读取并替换相应的位置。 6. **构建与打包**:在Visual Studio中选择“生成”菜单,然后选择“生成解决方案”,这会编译源代码并生成APK。如果...
2. **配置环境**:除了dll,配置文件可能包含必要的环境变量设置,比如GDAL_DATA路径,以确保GDAL能找到相关的投影信息和其他资源。 3. **使用GDAL API**:通过GDAL的C#接口,你可以访问所有GDAL的功能。例如,`Ogr...
1. **安装pdf2htmlEX**:在开始之前,确保已经在开发机器上安装了pdf2htmlEX,并将其可执行文件路径添加到系统环境变量中,或者在代码中指定完整路径。 2. **创建Process对象**:在C#代码中,首先创建一个Process...