如何删除C#中的文件,例如C:\test.txt
,虽然应用了与批处理文件相同的方法,例如
if exist "C:\test.txt"
delete "C:\test.txt"
else
return nothing (ignore)
答案 0 :(得分:352)
使用File类非常简单。
if(File.Exists(@"C:\test.txt"))
{
File.Delete(@"C:\test.txt");
}
<小时/> 正如Chris在评论中指出的那样,您实际上不需要进行
File.Exists
检查,因为如果文件不存在,File.Delete
不会抛出异常,尽管如果您要使用绝对路径,您需要检查以确保整个文件路径有效。
答案 1 :(得分:89)
答案 2 :(得分:31)
if (System.IO.File.Exists(@"C:\test.txt"))
System.IO.File.Delete(@"C:\test.txt"));
但
System.IO.File.Delete(@"C:\test.txt");
只要文件夹存在,就会一样。
答案 3 :(得分:28)
您可以使用以下命令导入System.IO
命名空间:
using System.IO;
如果文件路径代表文件的完整路径,您可以检查其存在并将其删除,如下所示:
if(File.Exists(filepath))
{
try
{
File.Delete(filepath);
}
catch(Exception ex)
{
//Do something
}
}
答案 4 :(得分:20)
如果要避免使用DirectoryNotFoundException
,则需要确保文件目录确实存在。 File.Exists
完成了这一点。另一种方法是使用Path
和Directory
实用程序类,如下所示:
string file = @"C:\subfolder\test.txt";
if (Directory.Exists(Path.GetDirectoryName(file)))
{
File.Delete(file);
}
答案 5 :(得分:15)
if (System.IO.File.Exists(@"C:\Users\Public\DeleteTest\test.txt"))
{
// Use a try block to catch IOExceptions, to
// handle the case of the file already being
// opened by another process.
try
{
System.IO.File.Delete(@"C:\Users\Public\DeleteTest\test.txt");
}
catch (System.IO.IOException e)
{
Console.WriteLine(e.Message);
return;
}
}
答案 6 :(得分:9)
if (File.Exists(path))
{
File.Delete(path);
}
答案 7 :(得分:1)
如果您使用FileStream从该文件读取然后想要删除它,请确保在调用File.Delete(path)之前关闭FileStream。我有这个问题。
var markersID = {};
var geoJsonLayer = L.geoJson(individualPoints, {
onEachFeature: function(feature, layer) {
// make a marker with that number
// actually no need to duplicate the marker.
//markersID[feature.properties.id] = L.marker(switchLatLong(feature.geometry.coordinates));
markersID[feature.properties.id] = layer;
}
});
markers.addLayer(geoJsonLayer); // this works
map.addLayer(markers);
// This will work, you just need to get the appropriate `id`.
markers.removeLayer(markersID[id]);
答案 8 :(得分:1)
有时您想要删除文件(无论发生什么异常,请删除该文件)。对于这种情况。
public static void DeleteFile(string path)
{
if (!File.Exists(path))
{
return;
}
bool isDeleted = false;
while (!isDeleted)
{
try
{
File.Delete(path);
isDeleted = true;
}
catch (Exception e)
{
}
Thread.Sleep(50);
}
}
注意:如果指定的文件不存在,则不会抛出异常。
答案 9 :(得分:-1)
这将是最简单的方法,
if (System.IO.File.Exists(filePath))
{
System.IO.File.Delete(filePath);
System.Threading.Thread.Sleep(20);
}
Thread.sleep
将有助于完美地工作,否则,如果我们复制或写入文件,它将影响下一步。