C# File Handling: Create file in directory where e

2020-05-29 03:27发布

I am creating a standalone application that will be distributed to many users. Now each may place the executable in different places on their machines.
I wish to create a new file in the directory from where the executable was executed. So, if the user has his executable in :

C:\exefile\

The file is created there, however if the user stores the executable in:

C:\Users\%Username%\files\

the new file should be created there.

I do not wish to hard code the path in my application, but identify where the executable exists and create the file in that folder. How can I achieve this?

标签: c# file-io
4条回答
做个烂人
2楼-- · 2020-05-29 04:11

Just use File.Create:

File.Create("fileName");

This will create file inside your executable program without specifying the full path.

查看更多
家丑人穷心不美
3楼-- · 2020-05-29 04:19

You can get the full path to your new file with:

string path = Path.GetDirectoryName(Application.ExecutablePath) + "\\mynewfile.txt" 
查看更多
你好瞎i
4楼-- · 2020-05-29 04:30
string path;
   path = System.IO.Path.GetDirectoryName( 
      System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase );
   MessageBox.Show( path );

http://msdn.microsoft.com/en-us/library/aa457089.aspx

查看更多
爷、活的狠高调
5楼-- · 2020-05-29 04:34

Never create a file into the directory where executable stays. Especially with the latest OSes available on the market, you can easily jump into the security issues, on file creation. In order to gurantee the file creation process, so your data persistancy too, use this code:

var systemPath = System.Environment.
                             GetFolderPath(
                                 Environment.SpecialFolder.CommonApplicationData
                             );
var complete = Path.Combine(systemPath , "files");

This will generate a path like C:\Documents and Settings\%USER NAME%\Application Data\files folder, where you guaranteed to have a permission to write.

查看更多
登录 后发表回答