2

Windows では、ビデオ ファイルをダブルクリックした後、終了したら、ファイルを 1 つまたは 2 つのディレクトリに移動し、含まれているフォルダーを削除します。

にあるファイルにのみ影響を与えたいC:\Users\User1\Downloads、たとえば%x%.

2 つのシナリオがあります。

  1. ファイルが の場合は%x%\Training.4273865.2013.avi、に移動する必要があります..\Viewed\

  2. ファイルが の場合は%x%\Showcase\SomeFile.mp4、同じフォルダに移動する必要があります: ..\..\Viewed\。その後、Showcaseフォルダを削除する必要があります。Showcase現在、 (および他のコンテンツを)削除する前に、VLCを閉じる(ファイルハンドルを閉じる)必要があります。

C または同様のオープンソース コンパイラでコンパイルできる言語は気にしません。

4

2 に答える 2

3

これは、あなたが求めていることを実行できるC#アプリケーションの例です。ビデオファイルを右クリックし、[プログラムから開く]を選択し、C#アプリケーションの実行可能ファイルを選択して起動します([常に選択したプログラムを使用してこの種類のファイルを開く]チェックボックスをオンにすると、変更が永続的になります)。

static void Main(string[] args)
{
    if (args.Length < 1)
        return;

    string vlc = @"C:\Program Files\VideoLAN\VLC\vlc.exe";
    string videoFile = args[0];
    string pathAffected = @"C:\Users\User1\Downloads";
    string destinationPath = System.IO.Directory.GetParent(pathAffected).FullName;
    destinationPath = System.IO.Path.Combine(destinationPath, @"Viewed\");

    Process vlcProcess = new Process();
    vlcProcess.StartInfo.FileName = vlc;
    vlcProcess.StartInfo.Arguments = "\"" + videoFile + "\"";
    vlcProcess.StartInfo.Arguments += " --play-and-exit";
    vlcProcess.Start();
    vlcProcess.WaitForExit();

    if (videoFile.IndexOf(pathAffected,
        StringComparison.InvariantCultureIgnoreCase) >= 0)
    {
        System.IO.File.Move(videoFile,
            System.IO.Path.Combine(destinationPath,
            System.IO.Path.GetFileName(videoFile)));

        if (IsSubfolder(pathAffected, 
            System.IO.Path.GetDirectoryName(videoFile)))
        {
            System.IO.Directory.Delete(
                System.IO.Directory.GetParent(videoFile).FullName, true);
        }
    }

}

この質問IsSubfolderでのコードを見つけました。

于 2013-02-13T15:29:20.440 に答える
3

ラッパーを作成して、それをメディア ファイルに関連付けることができます。

これは間接的に VLC を起動し、閉じた後にファイルを移動します。

VLC はストリームのリストを引数として取り、vlc://quitプレイリストの最後に追加して VLC を自動的に終了します。

C# で記述されたラッパーはより柔軟ですが、バッチでの簡単な例を次に示します。

set VLC=C:\Program Files\VideoLAN\VLC\vlc.exe
set FILE=Tig Notaro - Live.mp3
start "VLC" /WAIT "%VLC%" "%FILE%" vlc://quit
echo VLC has closed, I can move the file.
move "%FILE%" old/
pause
于 2013-02-12T21:45:30.927 に答える