Neue Version mit Mutex
This commit is contained in:
parent
e347e00827
commit
ca97ec2106
49
FileMutex.cs
Normal file
49
FileMutex.cs
Normal file
@ -0,0 +1,49 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BlubbFish.Utils {
|
||||
public class FileMutex {
|
||||
private static FileMutex instance;
|
||||
private String filename;
|
||||
private StreamWriter file;
|
||||
private FileMutex() { }
|
||||
|
||||
public static FileMutex Instance {
|
||||
get {
|
||||
if(FileMutex.instance == null) {
|
||||
FileMutex.instance = new FileMutex();
|
||||
}
|
||||
return FileMutex.instance;
|
||||
}
|
||||
}
|
||||
|
||||
public void setName(string name) {
|
||||
string path = AppDomain.CurrentDomain.BaseDirectory;
|
||||
this.filename = path + string.Join(string.Empty, Array.ConvertAll(new SHA512Managed().ComputeHash(Encoding.UTF8.GetBytes(name)), b => b.ToString("X2"))) + ".lock.txt";
|
||||
}
|
||||
|
||||
public bool create() {
|
||||
if(File.Exists(this.filename))
|
||||
return false;
|
||||
this.file = new StreamWriter(this.filename);
|
||||
this.initFile();
|
||||
return File.Exists(this.filename) && file != null;
|
||||
}
|
||||
|
||||
private void initFile() {
|
||||
this.file.Write("Created: " + DateTime.Now.ToUniversalTime()+"\n");
|
||||
this.file.Flush();
|
||||
}
|
||||
|
||||
public bool delete() {
|
||||
this.file.Close();
|
||||
File.Delete(this.filename);
|
||||
return !File.Exists(this.filename);
|
||||
}
|
||||
}
|
||||
}
|
@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Utils")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014 - 03.12.2016")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014 - 03.03.2017")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
|
||||
// übernehmen, indem Sie "*" eingeben:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.1")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.1")]
|
||||
[assembly: AssemblyVersion("1.0.2.1")]
|
||||
[assembly: AssemblyFileVersion("1.0.2.1")]
|
||||
|
@ -42,6 +42,7 @@
|
||||
<ItemGroup>
|
||||
<Compile Include="CmdArgs.cs" />
|
||||
<Compile Include="FileLogger.cs" />
|
||||
<Compile Include="FileMutex.cs" />
|
||||
<Compile Include="InIReader.cs" />
|
||||
<Compile Include="OwnController.cs" />
|
||||
<Compile Include="OwnModel.cs" />
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user