C#文件处理:在可执行文件所在的目录中创建文件

dar*_*nir 6 c# file-io

我正在创建一个独立的应用程序,将分发给许多用户.现在每个人都可以将可执行文件放在他们机器上的不同位置
我希望在执行可执行文件的目录中创建一个新文件.因此,如果用户的可执行文件在:

C:\exefile\
Run Code Online (Sandbox Code Playgroud)

在那里创建文件,但是如果用户将可执行文件存储在:

C:\Users\%Username%\files\
Run Code Online (Sandbox Code Playgroud)

应该在那里创建新文件.

我不希望在我的应用程序中硬编码路径,但要确定可执行文件的存在位置并在该文件夹中创建文件.我怎样才能做到这一点?

Tig*_*ran 21

永远不要在可执行文件所在的目录中创建文件.特别是使用市场上最新的操作系统,您可以轻松地进入安全问题,创建文件.为了保证文件创建过程,所以您的数据也是如此,请使用以下代码:

var systemPath = System.Environment.
                             GetFolderPath(
                                 Environment.SpecialFolder.CommonApplicationData
                             );
var complete = Path.Combine(systemPath , "files");
Run Code Online (Sandbox Code Playgroud)

这将生成一个类似C:\ Documents and Settings \%USER NAME%\ Application Data\files文件夹的路径,您可以保证其具有写入权限.


Sae*_*iri 9

只需使用File.Create:

File.Create("fileName");
Run Code Online (Sandbox Code Playgroud)

这将在可执行程序中创建文件,而不指定完整路径.

  • 不,它将在“当前文件夹”中创建,程序可以更改该文件夹。 (3认同)

Ste*_*ith 5

您可以通过以下方式获取新文件的完整路径:

string path = Path.GetDirectoryName(Application.ExecutablePath) + "\\mynewfile.txt" 
Run Code Online (Sandbox Code Playgroud)