質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

2回答

1405閲覧

C#プログラムにて、メモ帳で保存したテキストファイルのPathを取得したいです

terasa

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

2クリップ

投稿2021/11/22 11:23

編集2021/11/23 16:23

実現したいこと
・テキストエディタであるメモ帳にて、名前を付けて保存をした場合に、保存したテキストファイルのPathを、C#プログラムで取得したいです。

自分で調べてみた結果、メモ帳から保存したファイルPathをC#で取得できるかわからなかったので、ご教授頂けると幸いです。

上記方法以外でもメモ帳から保存したファイルPathをC#で取得できる方法があれば、ご教授頂けると幸いです。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2021/11/22 11:41

必ずメモ帳を起動しないといけませんか?(なんか、いわゆるXY問題になりそうな雰囲気)
terasa

2021/11/22 12:01

ご指摘ありがとうございます。windows標準搭載のメモ帳は必ずしも起動している必要はございません。 重要な点としましては、C#プログラムにて、外部アプリであるメモ帳が保存したフォルダPathを取得することとなります。お手数をお掛けしますが、よろしくお願いいたします。
m.ts10806

2021/11/22 12:05

大目的は何でしょう。 スレッドのような形で監視するにしても場所は指定しなきゃいけないでしょうし、トリガーがメモ帳の保存?それって結局何がしたいんでしょう? 提示記事によりどこまで操作できるのか分からないですけど、保存する際って勝手に保存されず、保存する場所を自分で選びますよね。 保存まで操作できるなら保存場所も指定することになるのでは。
terasa

2021/11/22 12:06

また、テキストエディタは、メモ帳でなければいけない訳ではございません。 サクラエディタなどのテキストエディタでも可能です。
terasa

2021/11/22 12:30 編集

ご指摘ありがとうございます。目的としましては、ユーザー様などが任意で保存したテキストファイルのPathを、DBでPath一覧として管理したいと考えております。 ユーザーがテキストファイルをどこに保存するかは不明のため、C#プログラムにて、テキストファイルが保存された段階で、Parhを取得したいと考えております。
m.ts10806

2021/11/22 12:42

完全任意だと「管理」にならないのでは。 しかも「ユーザー様」とあります。 クライアントプログラムを想定ですか?Webアプリケーションですか? 作りや概念が全く違ってきます。
Zuishin

2021/11/22 12:48

どこに保存したかもわからないファイルを特定する条件を思いつく限り書いてみてください。 最も簡単なのは、任意ではなくパスを指定して開かせることです。
terasa

2021/11/22 12:50

ご指摘ありがとうございます。 クライアントプログラムを想定しております。1台のパソコンで複数人が利用する想定です。
Zuishin

2021/11/22 13:00

特定できなくてもファイルが書き換えられたことをトリガーにパスを取得する方法はあるが、ちょっと考えたら色々と不都合があるのがわかるだろう。 もしかして、保存したものをすべてデータベースに記録したいのか? 悪用したいと考えてるの?
退会済みユーザー

退会済みユーザー

2021/11/22 13:21

> クライアントプログラムを想定しております。1台のパソコンで複数人が利用する想定です。 IATフックを紹介しといてなんですが、少なくとも業務用のプログラムで使うような技術じゃないんで、やめといたほうがいいです。
terasa

2021/11/22 13:27

ご指摘ありがとうございます。 今回IATフックについて初めて知ることが出来てとても感謝しております。ありがとうございます。
m.ts10806

2021/11/22 13:31

結局大目的については書けないということですよね。 ずっと手段しか語られていない。
Zuishin

2021/11/22 13:45

書けない理由があるんでしょうね。 やりたいことが怪しすぎる。
dodox86

2021/11/22 13:45

ある種のプロセスの監視、管理ソフトのようなものを目指しているのですかね。 例えばsysinternalの「Process Monitor」のようなものとか。 https://docs.microsoft.com/ja-jp/sysinternals/downloads/procmon ファイルシステムフィルタードライバーとか。 https://docs.microsoft.com/ja-jp/windows-hardware/drivers/ifs/about-file-system-filter-drivers いずれも実用レベルで使えるようプログラムするのは、大変に難しいものです。
guest

回答2

0

対象のアプリが内部で使ってるAPIが判るなら、こういうので行けるかもしれません(試してません)
EasyHook - The reinvention of Windows API Hooking

IATフック IAT Hook とかでググれば、それっぽい技術は出てきます。
ただ、こういう他プロセスのメモリに干渉する方法は真っ当な方法ではないので、ウイルスと誤検知されたりする可能性はあります。

投稿2021/11/22 12:48

編集2021/11/22 12:50
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

terasa

2021/11/22 13:42 編集

今回、IATフックについて初めて知ることができました。ありがとうございます。
guest

0

※ 私が解釈ミスしている可能性がありますが回答しておきます。

ーーーー

まず、Windows付属のメモ帳とかは単なるテキストエディタです。
テキストファイルは主に *.txt となっていることが多いです。(それ以外の可能性もあるが)

このテキストファイルは単に、このteratailとかに質問や回答のようなものです。(それをファイルに記述しただけです)

なので、特殊なソフトやアプリで開く必要はありません。(例えばExcelファイルはExcelがインストールされていないとできないとかのような意味で)
単純にテキストエディタで開けばいいだけです。

で、C#なりのプログラミング言語でテキストファイルにあるデータを読み込んだりするにはテキストエディタがないとできない…わけではありません。(コードを記述する場合は必要ですが、起動時には不要)

そういうプログラミング言語には大抵、ファイルの読み書きができるようになっています。(JavaScriptとかのようにセキュリティ面でできないものもあるが、少なくともC#とかにはあるし)

やり方は『C# ファイル 読み込み』とかで検索してください。というか、入門書(サイトでもいいが)にはほぼ確実に載っていることです。

つまり、基礎をないがしろにしているからそうなるのでは。

投稿2021/11/22 12:17

BeatStar

総合スコア4962

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

terasa

2021/11/22 12:35

ご回答ありがとうございます。 ユーザーがテキストファイルをどこに保存するかは不明のため、C#プログラムにて、テキストファイルが保存された段階で、Parhを取得したいと考えております。 テキストが保存された時点というトリガーでファイルParhを取得するよい方法はございますでしょうか。 よろしくお願いいたします。
BeatStar

2021/11/22 13:18

『仕様を見直すべき』に一票。 そりゃ、やろうと思えばできるとは思います。でもそれってある意味ハッキングです。ハッキングではなくとも不正アクセス禁止法とかに抵触する可能性があります。(今回は問題が無くとも応用すれば悪用できるし)
terasa

2021/11/22 13:24

ご回答ありがとうございます。 仕様を変更できればよいのですが、今回は変更することが出来ません。 もし可能であれば、実現可能な技術をご教授いただけると幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問