编辑:对错误道歉 - 我理解一个不太清楚。
我创建了一个类库,我希望用多个方法/函数填充它。我正在研究其中一种方法,但我正在努力使用自定义目录的方法。
请参阅类库中的方法代码:
public class SharpFuntions
{
public static void CreateFile(string location){
string path = location;
try
{
// Delete the file if it exists.
if (File.Exists(path))
{
File.Delete(path);
}
// Create the file.
File.Create(path);
{
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
现在,当我尝试调用此函数并使用目录时,它不会通过。 见下文:
static void Main(string[] args)
{
SharpFuntions.CreateFile(@"C:\User\Text.txt");
}
我不确定上述内容是否可行。我只是希望能够调用该函数,并且每次使用它时都可以插入不同的目录/文件名。
所以下面的作品我知道,但我不想硬编码目录/文件名
public class SharpFuntions
{
public static void CreateFile(){
string path = @"c:\temp\MyTest2.txt";
try
{
// Delete the file if it exists.
if (File.Exists(path))
{
File.Delete(path);
}
// Create the file.
File.Create(path)
{
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
答案 0 :(得分:3)
创建或覆盖指定路径中的文件。
路径类型:System.String
要创建的文件的路径和名称。
删除指定的文件。
确定指定的文件是否存在。
SharpFuntions.CreateFile(@"C:\User");
...
// path is not a file name, it will never work
File.Create(path);
您展示的所有方法都不使用路径,而是使用文件名。你需要改变那个
更好的例子
public static void CreateFile(string fileName)
{
try
{
// Delete the file if it exists.
if (File.Exists(fileName))
{
// Note that no lock is put on the
// file and the possibility exists
// that another process could do
// something with it between
// the calls to Exists and Delete.
File.Delete(fileName);
}
// create empty file
using (File.Create(fileName));
// Create the file.
//using (FileStream fs = File.Create(fileName))
//{
// Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
// Add some information to the file.
// fs.Write(info, 0, info.Length);
//}
// Open the stream and read it back.
//using (StreamReader sr = File.OpenText(fileName))
//{
// string s = "";
// while ((s = sr.ReadLine()) != null)
// {
// Console.WriteLine(s);
// }
//}
}
catch (Exception ex)
{
// log
// message
// output to a console, or something
Console.WriteLine(ex.ToString());
}
}
<强>使用强>
string fileName = @"c:\temp\MyTest.txt";
CreateFile(fileName);
<强>更新强>
我已更新代码以创建空文件,如果这是您想要的
答案 1 :(得分:0)
您可以尝试使用FileInfo
public static void CreateFile(string location)
{
var fileInfo = new FileInfo(location);
try
{
// Delete the file if it exists.
if (fileInfo.Exists)
{
fileInfo.Delete();
}
// Create the file and directory.
if (!Directory.Exists(fileInfo.DirectoryName))
Directory.CreateDirectory(fileInfo.DirectoryName);
fileInfo.Create();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}