-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathForm1.cs
More file actions
131 lines (115 loc) · 4.3 KB
/
Form1.cs
File metadata and controls
131 lines (115 loc) · 4.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace LogApp
{
public partial class Form1 : Form
{
private const string FOLDER_NAME = "Data";
private object obj = new object();
public Form1()
{
InitializeComponent();
}
/// <summary>
/// ロードイベント
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
string todayData = string.Empty;
string filepath = string.Empty;
string path = @"C:\Users\Toshi\Desktop\new\Data\2021\07\04.txt";
// ファイルパスを取得する
filepath = fileCreate();
// CSVを読み込む
using (StreamReader reader = new StreamReader(filepath))
{
todayData = reader.ReadToEnd();
}
//現在の状況(計測中か否か)
//時間(今回の計測時間)
//合計時間(本日の合計計測時間)
//コメント(フリーフォーマット)
}
/// <summary>
/// 今日のファイルパスを取得する
/// </summary>
/// <returns>ファイルパス</returns>
private string fileCreate()
{
string folderPath = Path.Combine(Environment.CurrentDirectory, FOLDER_NAME);
string year = DateTime.Now.ToString("yyyy"); // 年
string manth = DateTime.Now.ToString("MM"); // 月
string day = DateTime.Now.ToString("dd") + ".txt"; // 日
// フォルダが存在しない場合は作成
if (!Directory.Exists(folderPath))
{
// フォルダーの作成
DirectoryCreate(folderPath);
}
// 現在の年のディレクトリ
string yearDirectory = Path.Combine(folderPath, year);
if (!Directory.Exists(yearDirectory))
{
// フォルダーの作成
DirectoryCreate(yearDirectory);
}
// 現在の月のディレクトリ
string manthDirectory = Path.Combine(yearDirectory, manth);
if (!Directory.Exists(manthDirectory))
{
// フォルダーの作成
DirectoryCreate(manthDirectory);
}
// ファイル読み込み
string filePath = Path.Combine(manthDirectory, day);
if (!File.Exists(filePath))
{
// ファイルの作成
File.Create(filePath).Close();
// アクセス権を変更する
FileSystemAccessRule rule = new FileSystemAccessRule(
new NTAccount("everyone"),
FileSystemRights.Modify,
AccessControlType.Allow);
FileSecurity security = File.GetAccessControl(filePath);
security.AddAccessRule(rule);
File.SetAccessControl(filePath, security);
}
return filePath;
}
private void btnAdd_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.ShowDialog();
}
/// <summary>
/// ディレクトを作成してアクセス権を付与する
/// </summary>
/// <param name="path">ディレクトリを作成するパス</param>
private void DirectoryCreate(string path)
{
Directory.CreateDirectory(path);
FileSystemAccessRule rule = new FileSystemAccessRule(
new NTAccount("everyone"),
FileSystemRights.FullControl,
InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit,
PropagationFlags.None,
AccessControlType.Allow);
DirectorySecurity security = Directory.GetAccessControl(path);
security.SetAccessRule(rule);
Directory.SetAccessControl(path, security);
}
}
}