Announcement

Collapse
No announcement yet.

Microsoft Winfile.Exe open sourced, improved, and better than ever

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Microsoft Winfile.Exe open sourced, improved, and better than ever

    https://github.com/Microsoft/winfile/releases

    For years I've been using a hacked up version of the old Window NT file manager (WINFILE.EXE) just because I like it's design so much more than MS-Explorer.

    Today I learned that Microsoft open sourced WINFILE and posted a newly compiled version with a few enhancements at their Github site (link above). It's working GREAT for me!

    I'm certain there is at least one more old fart on this forum that will be thrilled with this news.

  • #2
    Got it yesterday, works fine. I also downloaded the source but it only has a VS project file, not a MAK file so I don't have a quick way to build it.
    hutch at movsd dot com
    The MASM Forum

    www.masm32.com

    Comment


    • #3
      Steve - I successfully re-built Winfile.exe today using the latest Nuwen Mingw32 installer and the new Mingw32 makefile that MS added last night to the Git project.

      (1) Download and unzip latest Git project files

      (2) Rename (makefile.mingw32) to (makefile)

      (3) Type: mingw32-make (assuming your paths are setup correctly)

      Takes about a minute on my machine and the batch issues a few (harmless) type-casting warnings but otherwise compiles and runs cleanly. YMMV

      Comment


      • #4
        Is it better than ZTree? That's been my go-to file manager for at least 10 years. http://www.ztree.com/

        Who remembers XTreeGold from the days of DOS?
        --
        [URL="http://www.camcopng.com"]CAMCo - Applications Development & ICT Consultancy[/URL][URL="http://www.hostingpng.com"]
        PNG Domain Hosting[/URL]

        Comment


        • #5
          Stuart - Better, like beauty, is in the eye of the beholder :-)

          Attached is a screenshot of my mildly customized version.
          Click image for larger version

Name:	scrnshot.JPG
Views:	1
Size:	130.5 KB
ID:	771438

          Comment


          • #6
            Kevin,

            I have downloaded each version of the source from the link you attached but cannot find the "makefile.mingw32" file.
            hutch at movsd dot com
            The MASM Forum

            www.masm32.com

            Comment


            • #7
              Hmmm .. someone removed it from the main branch -- I'm including it here - just save this as "makefile" ... (don't give it an extension)


              SRCS = \
              dbg.c \
              lfn.c \
              lfnmisc.c \
              numfmt.c \
              suggest.c \
              tbar.c \
              treectl.c \
              wfassoc.c \
              wfchgnot.c \
              wfcomman.c \
              wfcopy.c \
              wfdir.c \
              wfdirrd.c \
              wfdirsrc.c \
              wfdlgs.c \
              wfdlgs2.c \
              wfdlgs3.c \
              wfdos.c \
              wfdrives.c \
              wfdrop.c \
              wfext.c \
              wffile.c \
              wfinfo.c \
              wfinit.c \
              wfmem.c \
              wfprint.c \
              wfsearch.c \
              wftree.c \
              wfutil.c \
              winfile.c \
              wnetcaps.c

              OBJS = $(subst .c,.o,$(SRCS)) wfgoto.o res.o
              LIBS = -mwindows -lgdi32 -lcomctl32 -lole32 -lshlwapi -loleaut32
              CFLAGS = -DUNICODE -DFASTMOVE -ffunction-sections -fdata-sections -Os -Wl,--gc-sections

              TARGET = winfile
              ifeq ($(OS),Windows_NT)
              TARGET := $(TARGET).exe
              endif

              .SUFFIXES: .c .cpp .o .res

              all : $(TARGET)

              $(TARGET) : $(OBJS)
              g++ -o $@ $(OBJS) $(LIBS)

              .c.o :
              gcc -c -s $(CFLAGS) -I. $< -o $@

              .cpp.o :
              g++ -c -O2 $(CFLAGS) -I. $< -o $@

              res.o : res.rc
              windres -I. -i res.rc -o res.o

              clean :
              rm -f $(OBJS) $(TARGET)




              Comment


              • #8
                Thanks for that, I have Microsoft VC 2015 so if I get time I will try and build in with that.
                hutch at movsd dot com
                The MASM Forum

                www.masm32.com

                Comment


                • #9
                  thank you Mr. Kevin Diggins, I was about to ask for that.
                  is this code 64-bit clean or does it matter if it's 32-bit only ?
                  as the salmon fish is compelled to go back to it's birthplace to spawn, so comes a day when man is compelled to go back to it's source.. GOD

                  Comment


                  • #10
                    Originally posted by Johan Klassen View Post
                    thank you Mr. Kevin Diggins, I was about to ask for that.
                    is this code 64-bit clean or does it matter if it's 32-bit only ?
                    Hi Johan ... I'm running Win10 Pro 64-bit but compiling and running this new version of Winfile as 32-bit. I may investigate
                    creating a 64-bit version but I suspect that will result in failure and I have other things to do with my time right now :-)


                    Craig Wittenberg - who created the Winfile repository on Github for Microsoft says this at https://github.com/Microsoft/winfile :
                    Changes in original_plus

                    The source code provided here (in the src directory) was copied from the Windows NT 4 source tree in November 2007.
                    The tag named original_plus contains a very limited set of modifications from the original sources to enable WinFile.exe
                    to run on current Windows. The most significant changes are:
                    1. converted to Visual Studio solution; works on VS 2015 and 2017
                    2. compiles and runs on 64-bit Windows (e.g., GetWindowLong -> GetWindowLongPtr, LONG -> LPARAM)
                    3. added a few header files which were stored elsewhere in the NT source tree (e.g., wfext.h)
                    4. deleted some unused files (e.g., winfile.def)
                    5. converted 64-bit arithmetic from internal libraries to C
                    6. converted internal shell APIs to public APIs (the primary reason the old version would not run)

                    Comment


                    • #11
                      Johan et al,

                      Adding -m64 to the makefile is all that's needed to compile Winfile as a 64-bit Windows app. So far it seems to be running fine but time will tell.

                      Here is the line to modify in the makefile that I posted earlier:

                      CFLAGS = -DUNICODE -DFASTMOVE -m64 -ffunction-sections -fdata-sections -Os -Wl,--gc-sections

                      I confirmed through Windows Task Manager that Winfile.Exe is indeed executing as a 64-bit app.

                      Pretty cool stuff, if you ask me :-)
                      Attached Files

                      Comment


                      • #12
                        Kevin,
                        The NUWEN distro has been 64bit only since 08/10/2013.

                        James

                        Comment


                        • #13
                          Originally posted by jcfuller View Post
                          Kevin,
                          The NUWEN distro has been 64bit only since 08/10/2013.

                          James
                          I knew that James ... what I didn't know was that WINFILE would correctly compile and actually run with no code changes.

                          Comment


                          • #14
                            thank you Mr. Kevin Diggins
                            as the salmon fish is compelled to go back to it's birthplace to spawn, so comes a day when man is compelled to go back to it's source.. GOD

                            Comment

                            Working...
                            X