]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Add File.DisplayPath
authorMatt Joiner <anacrolix@gmail.com>
Mon, 3 Aug 2015 14:45:15 +0000 (00:45 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Mon, 3 Aug 2015 14:45:15 +0000 (00:45 +1000)
It's used in many places, I just never formalized it. This will help prevent bugs and misuse of File.Path

file.go

diff --git a/file.go b/file.go
index f76b99d0823cda8d7fc0a6bba94ce303ef8b68c7..52b5bfeb41bd62a5e666945bb96b925618ed4e5c 100644 (file)
--- a/file.go
+++ b/file.go
@@ -1,6 +1,10 @@
 package torrent
 
-import "github.com/anacrolix/torrent/metainfo"
+import (
+       "strings"
+
+       "github.com/anacrolix/torrent/metainfo"
+)
 
 // Provides access to regions of torrent data that correspond to its files.
 type File struct {
@@ -28,6 +32,17 @@ func (f *File) Length() int64 {
        return f.length
 }
 
+// The relative file path for a multi-file torrent, and the torrent name for a
+// single-file torrent.
+func (f *File) DisplayPath() string {
+       fip := f.FileInfo().Path
+       if len(fip) == 0 {
+               return f.t.Info().Name
+       }
+       return strings.Join(fip, "/")
+
+}
+
 type FilePieceState struct {
        Bytes int64 // Bytes within the piece that are part of this File.
        PieceState